TreeView执行时出现DataBinding:“System.Data.Common.DataRecordInternal”不包含名为“**”的属性,怎么解决?
我是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的执行呢???????急盼.....