【发布时间】:2016-01-06 19:51:26
【问题描述】:
<asp:GridView ID="gvData" EmptyDataText="No data to display" ClientIDMode="Static" runat="server" AutoGenerateColumns="false" CssClass="gvData">
<Columns>
<asp:TemplateField HeaderText="Content">
<ItemTemplate>
<asp:Label ID="lblID" runat="server" ClientIDMode="Static" Text='<%# Eval("Provider") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="In Collection(s)">
<ItemTemplate>
<asp:Label ID="lblID" runat="server" ClientIDMode="Static" Text='<%# Eval("Collection") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
C#:
strCollFinalized = ddlContent.SelectedValue + "," + CheckInCollection(Convert.ToInt64(ddlContent.SelectedItem.Value)); //returns two string values
string[] strL = strCollFinalized.Split(',');
gvData.DataSource = strL;
gvData.DataBind();
上面的代码给了我一个错误:
DataBinding: 'System.String' does not contain a property with the name 'Provider'.
如何将第一个字符串填充到Provider 列中,将第二个字符串填充到Collection 列中。
【问题讨论】:
-
您是否将数据网格
Auto Generate Columns设置为false..? -
尝试将列绑定到 Container.DataItem - Text=
-
是的,目前设置为
false -
应该! (如果没有的话会很奇怪)
-
啊,现在我明白了。当然,它将填充两行。如果您想查看具有不同值的两列,作为一种可能(也是最简单)的解决方案,您必须创建一个具有两个属性的对象,每个属性分别分配给数组中的项目,然后将列绑定到属性