日期:2014-05-18  浏览次数:20441 次

请教高手,业务对象 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()