0
好,因爲沒有人能夠確定爲什麼my DataTable could not get the updated GridView data,我現在試圖直接從GridView獲取值。爲什麼在讀取GridViewRow文本值時會得到空字符串?
現在的問題是,我從閱讀GridViewRows獲得的文本值都是空字符串。
這裏是我的代碼:
ASPX Markup code for the GridView:
<asp:gridview ID="ESBAndTSRValuesInputGridView" runat="server" ShowFooter="true" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="AwardID" HeaderText="Award ID" Visible="false" />
<asp:BoundField DataField="AwardName" HeaderText="Award Name" />
<asp:TemplateField HeaderText="ESBValue">
<ItemTemplate>
<asp:TextBox ID="ESBValue" Text='<%# Eval("ESBValue") %>' runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TSRValue">
<ItemTemplate>
<asp:TextBox ID="TSRValue" Text='<%# Eval("TSRValue") %>' runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
從點擊一個按鈕的隱藏代碼初始化GridView的數據:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("AwardID", typeof(string)));
dt.Columns.Add(new DataColumn("AwardName", typeof(string)));
dt.Columns.Add(new DataColumn("ESBValue", typeof(string)));
dt.Columns.Add(new DataColumn("TSRValue", 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();
嘗試讀取GridViewRow值:
for (int rowCount = 0; rowCount < ESBAndTSRValuesInputGridView.Rows.Count; rowCount++)
{
int cell0Val, cell1Val, cell2Val, cell3Val;
//input text is blank for all:
//TryParse returns false for all (because if I use Parse instead, exception occurs):
Int32.TryParse(ESBAndTSRValuesInputGridView.Rows[rowCount].Cells[0].Text, out cell0Val);
Int32.TryParse(ESBAndTSRValuesInputGridView.Rows[rowCount].Cells[1].Text, out cell1Val);
Int32.TryParse(ESBAndTSRValuesInputGridView.Rows[rowCount].Cells[2].Text, out cell2Val);
Int32.TryParse(ESBAndTSRValuesInputGridView.Rows[rowCount].Cells[3].Text, out cell3Val);
int val1 = Int32.Parse(ESBAndTSRValuesInputGridView.Rows[rowCount].Cells[0].Text);
int val2 = Int32.Parse(dr["AWARDID"].ToString());
if (val1 == val2)
{
rowIndex = rowCount;
break;
}
}
那麼如何在讀取GridViewRows時獲得實際的文本值?
我需要的綁定列以及在TextField的值..
而且我使用Visual Studio 2005和.NET 2.0框架..
細胞0和1是用於綁定列,其具有不ID。那麼它如何爲這些工作? – Ahmad
你必須找到控制來獲得從網格視圖的孩子的asp控制的值..你不能直接得到值..前兩個不是控制他們是綁定域 –
那麼我怎麼得到BoundFields的值,然後,作爲那是我真正想要的? – Ahmad