业务对象 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()