【发布时间】:2020-04-02 08:15:31
【问题描述】:
我尝试将我的对象列表绑定到我的数据源。 但是当我从 autogeneratecolums 切换到 boundfields 时,整个网格不再显示。 让这项工作正常进行是我想念的吗?
asp:
<asp:GridView ID="grid_article"
AutoGenerateColumns="false"
runat="server"
GridLines="None"
AllowPaging="true"
CssClass="mGrid"
PagerStyle-CssClass="pgr"
AlternatingRowStyle-CssClass="alt"
OnPageIndexChanging="ArticleGrid_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="cbSelect" runat="server" ReadOnly="false"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="itemNumber" HeaderText="Product Number" ReadOnly="true"></asp:BoundField>
<asp:BoundField DataField="name" HeaderText="Product Name" ReadOnly="true"></asp:BoundField>
<asp:BoundField DataField="description" HeaderText="Product Description" ReadOnly="true"></asp:BoundField>
<asp:BoundField DataField="purchasePrice" HeaderText="Purchase Price" ReadOnly="true"></asp:BoundField>
<asp:BoundField DataField="salesPrice" HeaderText="Sales Price" ReadOnly="true"></asp:BoundField>
</Columns>
</asp:GridView>
后面的代码:
if (articles != null)
{
if (articles.Count != 0)
{
DataTable dt = new DataTable();
dt.Columns.Add("itemNumber");
dt.Columns.Add("name");
dt.Columns.Add("description");
dt.Columns.Add("purchasePrice");
dt.Columns.Add("salesPrice");
foreach (AccessoryDTO item in articles)
{
DataRow dr = dt.NewRow();
dr["itemNumber"] = item.itemNumber;
dr["name"] = item.name;
dr["description"] = item.description;
dr["purchasePrice"] = item.purchasePrice + " " + item.currency;
dr["salesPrice"] = item.salesPrice + " " + item.currency;
dt.Rows.Add(dr);
}
grid_article.DataSource = dt;
show_record_count(articles.Count);
grid_article.DataBind();
}
else
{
grid_article.DataSource = null;
grid_article.DataBind();
}
}
【问题讨论】:
-
查看this链接
-
@NeelDarji 我的行名是 1:1 作为给定的数据字段,所以我不知道在这里检查什么
-
查看sqldatasource及备注
-
@NeelDarji - 因为我使用修复对象而不是 sql,所以我不需要数据源详细信息。
-
试试
readonly=false
标签: c# asp.net gridview data-binding