数据绑定:& # 39;System.Data.DataRow& # 39;不包含名称为'标题为'的属性
本文关键字:属性 标题为 DataRow System Data 数据绑定 包含名 | 更新日期: 2023-09-27 18:02:34
我在1.xml文件中有:
<Root>
<Node PCode="1" FieldName="FulName" Caption="F&LName" FieldValue="John Cary" FieldType="1" />
<Node PCode="1" FieldName="Funct" Caption="MonthWork" FieldValue="29 days " FieldType="2" />
<Node PCode="1" FieldName="FType" Caption="Work_Type" FieldValue="daily " FieldType="2" />
<Node PCode="1" FieldName="FTime" Caption="ExtraTime" FieldValue="0' : 90 " FieldType="2" />
<Node PCode="1" FieldName="HTime" Caption="HolidTime" FieldValue="30' : 82" FieldType="2" />
</Root>
c#中的
DataSet ds = new DataSet();
ds.ReadXml(@"d:'1.xml");
DataTable dt = ds.Tables[0];
functionNodes.DataSource = ds.Tables[0].Select("FieldType = '2'");
functionNodes.DataBind();
,在aspx文件中:
<asp:DataList ID="deductionsNodes" runat="server">
<ItemTemplate>
<asp:Label CssClass="itemTopics" runat="server" Text='<%# (Eval("FieldType").Equals("4")) ? Eval("Caption") : "" %>'></asp:Label> **Error**
<asp:Label CssClass="itemValues" runat="server" Text='<%# (Eval("FieldType").Equals("4")) ? Eval("FieldValue") : "" %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
当运行时,当游标到达运行DataBind()
方法时,这个错误发生在aspx代码中的第一个标签标签中,并且说:
数据绑定:"System.Data。DataRow'不包含名为'Caption'的属性。
我需要过滤行与FieldType=2
在数据列表中使用。
注意:当我删除.Select("FieldType = '2'")
方法,只使用ds.Tables[0];
时,
DataSource期望在它绑定的集合周围有某种形式的DataView。它似乎很难被交给原始的DataRow数组。一种选择是使用数据表的DefaultView并使用RowFilter功能:
DataSet ds = new DataSet();
ds.ReadXml(@"d:'1.xml");
DataTable dt = ds.Tables[0];
dt.DefaultView.RowFilter = "FieldType = '2'";
functionNodes.DataSource = dt;
functionNodes.DataBind();
我认为你发布的。aspx是不正确的数据绑定,然而。当您对FieldType=2进行过滤时,它只显示FieldType=4的项。