【发布时间】:2013-06-28 12:39:03
【问题描述】:
我有一个 GridView 设置,我尝试绑定到 DataTable .. 然后我通过网页对 GridView 的值进行了一些更改.. 然后我进入按钮单击的代码后面,看到 DataTable 仍然里面有旧值...
GridView 的 ASPX 标记代码:
<asp:gridview ID="ESBAndTSRValuesInputGridView" runat="server" ShowFooter="true" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Award ID" HeaderText="Award ID" Visible="false" />
<asp:BoundField DataField="Award Name" HeaderText="Award Name" />
<asp:TemplateField HeaderText="ESB Value">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TSR Value">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
从按钮单击的代码隐藏中初始化 GridView 数据:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Award ID", typeof(string)));
dt.Columns.Add(new DataColumn("Award Name", typeof(string)));
dt.Columns.Add(new DataColumn("ESB Value", typeof(string)));
dt.Columns.Add(new DataColumn("TSR Value", typeof(string)));
DataRow[] PSPAwards = dtAwards.Select("AWARDTYPE = 'PSP'");
foreach (DataRow dr in PSPAwards)
{
dt.Rows.Add(dr["AWARDID"].ToString(), dr["AWARDNAME"].ToString(), "0", "100");
}
ViewState["ESBAndTSRValuesDataTable"] = dt;
ESBAndTSRValuesInputGridView.DataSource = dt;
ESBAndTSRValuesInputGridView.DataBind();
在上面的代码中,您可以看到我使用默认值 0 和 100 初始化了行。这是我在从网页更改这些值后在调试事件期间看到的内容..
如何使 GridView 自动将对其所做的所有更改保存到其链接的 DataTable 中?
我正在使用 .NET 2.0 Framework 和 VS2005 ..
【问题讨论】:
-
有人可以帮我吗?
标签: asp.net .net gridview .net-2.0 asp.net-2.0