TreeView执行时出现DataBinding:“System.Data.Common.DataRecordInternal”不包含名为“**”的属性,怎么解决?

aacckk 2008-01-05 02:19:34
我是asp.net初学者对控件等的使用不熟请教各位高手:
正常使用时:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string mytreeview = this.TreeView1.SelectedValue.ToString();
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
con.Open();
SqlCommand cmd = new SqlCommand("select * from vBook where CategoryName='"+mytreeview+"' or subCategoryName='" + submytreeview + "' ", con);
SqlDataReader myread = cmd.ExecuteReader();
//this.GridView1.DataSource = myread;
//this.GridView1.DataBind();
//con.Close();

this.DataList1.DataSource = myread;
this.DataList1.DataBind();

con.Close();

}

这里是datalist <ItemTemplate> 的html代码:
<td >
<asp:Label ID="Label2" runat="server" Text='<%# Eval("BookName") %>'>
</asp:Label>
<a> </td>

以上执行正常-----


错误出现时是因为:
我想用绑定的BookName链接到BookDetails.aspx于是加了<a href='BookDetails.aspx?id=<%# Eval( "BookID") %>'>
这里是datalist <ItemTemplate> 的html代码:
<td ><a href='BookDetails.aspx?id=<%# DataBinder.Eval(Container.DataItem, "BookID") %>'>

<asp:Label ID="Label2" runat="server" Text='<%# Eval("BookName") %>'>
</asp:Label>
<a> </td>

但是点击BookName可链接到BookDetails.aspx?id=(BookID)上.就是TreeView1_SelectedNodeChanged执行时出现错误:
(DataBinding:“System.Data.Common.DataRecordInternal”不包含名为“BookID”的属性)

怎样让datalist<ItemTemplate>中的BookName正常链接,而不影响TreeView1_SelectedNodeChanged的执行呢???????急盼.....

...全文
384 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dymei 2008-12-26
其中的“?????”的属性是A表的主键,是B表的外键。不知带跟这个有没有关系
回复
Dymei 2008-12-26
(DataBinding:“System.Data.Common.DataRecordInternal”不包含名为“?????”的属性。
在我往一个页面里加了两个datalist和repeater后就出现了这个问题。
help!!!
回复
发动态
发帖子
组件/控件开发
创建于2007-09-28

8833

社区成员

.NET技术 组件/控件开发
申请成为版主
社区公告
暂无公告