首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

,业务对象 Model 怎么实现绑定到 DetailsView 控件

2012-04-05 
请教高手,业务对象 Model 如何实现绑定到 DetailsView 控件业务对象model对应数据库中的一个表。业务逻辑中

请教高手,业务对象 Model 如何实现绑定到 DetailsView 控件
业务对象   model   对应数据库中的一个表。业务逻辑中查询数据库的返回的一条数据的信息通过model类

的实例封装返回,然后绑定到DetailsView控件。

绑定代码如下:
BrandItem.aspx:
<asp:DetailsView   ID= "DetailsView1 "   runat= "server "   Caption= "品牌信息 "   Height= "50px "  

Width= "125px "   AutoGenerateRows= "False "  

OnPageIndexChanging= "DetailsView1_PageIndexChanging ">
                <Fields>
                        <asp:BoundField   HeaderText= "品牌名称 "   DataField= "Name "   />
                        <asp:BoundField   HeaderText= "Logo "   DataField= "LogoImage "     />
                        <asp:CheckBoxField   HeaderText   = "推荐 "   DataField= "Recommendation "   />
                        <asp:BoundField   HeaderText= "次序 "   DataField= "Sequence "   />
                        <asp:HyperLinkField   HeaderText= "销售公司 "   />
                        <asp:HyperLinkField   HeaderText= "产品分类 "   />
                </Fields>
        </asp:DetailsView>

BrandItem.aspx.cs:
Brand   brand   =   Brand.Select(dal,   Convert.ToInt32(Request.QueryString[ "BrandID "]));
DetailsView1.DataSource   =   brand;
DetailsView1.DataBind();

开始Model没有实现任何接口,提示错误:
数据源的类型无效。它必须是   IListSource、IEnumerable   或   IDataSource。

然后修改Model的代码实现IEnumerable接口,以迭代器实现   GetEnumerator()方法
代码如下:
public   IEnumerator   GetEnumerator()
        {
                yield   return   this.primaryKey;
                yield   return   this.name;
                yield   return   this.logoImage;
                yield   return   this.recommendation;
                yield   return   this.sequence;
        }

提示错误:
在选定的数据源上未找到名为“Name”的字段或属性。

请教各位高人,业务对象   Model   如何实现绑定到   DetailsView   控件?

[解决办法]
逻辑不对!!!
你让Brand.Select()返回一个List对象,里面包含Brand对象,这样就好了!
[解决办法]
你得实现一个object datasource吧
[解决办法]
在选定的数据源上未找到名为“Name”的字段或属性。

在你的数据源 查询 字段中 并没有出现这个列
或者 你的对应model类中 并没有 Name属性 字段
[解决办法]
呵呵………………
hertcloud(·£孙子兵法£·)
你看看他的这段代码就知道为什么会出错了!!!
------------------------------

public IEnumerator GetEnumerator()


{
yield return this.primaryKey;
yield return this.name;
yield return this.logoImage;
yield return this.recommendation;
yield return this.sequence;
}
-----------------------------
他把属性给迭代了!

[解决办法]
逻辑不对!!!
你让Brand.Select()返回一个List对象,里面包含Brand对象,这样就好了!


要这样:
public IList <Brand> Brand.Select(YourDALType dal, int) {
IList <Brand> brands = new List <Brand> ();
// 这里读取 brand 的相关数据,并加入 brands 集合中
// ...
// brands.Add(brand);
// ...
return brands;
}


[解决办法]
返回iList,Collection
绑定
获取ItemDeleting事件e
类 info=e.Item.DataItem as 类;
info.删除方法()
[解决办法]
这个我知道,你用List <T> 作为DetailView的数据源 然后在List <T> 里面加你的业务对象添加到里面,然后你业务对象的属性就可以后数据库中的字段一样用了
[解决办法]
用LIST <T> 就好了, 楼主还自己实现IEnumerator, 真够生猛海鲜的.呵呵

热点排行