我有一個GridView設置與我試圖綁定到DataTable ..然後,我通過網頁對GridView的值進行了一些更改..然後,我將後面的代碼按鈕單擊,並看到DataTable中仍然有它的舊值...GridView的變化沒有在綁定的數據表中顯示
爲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框架與VS2005 ..
有人可以幫我在這裏嗎? – Ahmad