如何使用两个字符串值填充 GridView
本文关键字:字符串 填充 GridView 两个 何使用 | 更新日期: 2023-09-27 18:29:18
<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
列中。
当您说Text='<%# Eval("Provider") %>
时,您会得到Templatefield
的错误原因。因此,它正在寻找源中不存在的属性/列名称Provider
,因此会出现错误。
如果你想使这个字符串集合作为网格视图的源,那么完全删除这些模板字段,然后你可能说
List<string> strL = strCollFinalized.Split(',').ToList();
gvData.DataSource = strL;
gvData.DataBind();
另一种方法是创建一个类似 DataTable
DataTable dt = new DataTable();
DataColumn dc = new Datacolumn("Provider");
DataColumn dc1 = new Datacolumn("Collection");
dt.columns.Add(dc);
dt.columns.Add(dc1);
DataRow dr = dt.NewRow();
dr[dc] = ddlContent.SelectedValue;
dr[dc1] = CheckInCollection(Convert.ToInt64(ddlContent.SelectedItem.Value));
dt.Rows.Add(dr);
gvData.DataSource = dt;
gvData.DataBind();