数据绑定:& # 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];时,

数据绑定:& # 39;System.Data.DataRow& # 39;不包含名称为'标题为'的属性

返回所有字段类型的所有行,没有任何错误,但是返回所有行。

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的项。