[英]Gridview with C# adding rows
我想在網格視圖中添加一行。 我成功添加了文本框,但無法提取該值。它一直告訴我對象引用未設置為對象的實例。 在這行停止
string acc = Convert.ToString(((TextBox)GridView1.FooterRow.FindControl("accountID")).Text);
請問我在做什么錯
TextBox.Text
已經返回一個字符串)。 您如何以及在何處將TextBox
添加到頁腳行?
我在
GridView1_RowDataBound
的頁腳行中添加了TextBox
RowDataBound
不是動態控件的正確方法,因為它僅在數據綁定時調用,而不是在每次回發時調用。 但是需要在每個回發中重新創建動態控件。
因此,請使用RowCreated
來動態創建控件,並使用RowDataBound
進行數據綁定。
protected void GridView1_RowCreated(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
TextBox tb = new TextBox();
tb.ID = "accountID";
e.Row.Cells[indexOfColumn].Controls.Add(tb);
}
}
好的,首先檢查它的頁腳行,然后在其中找到文本框
protected void grdAccounts_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
//get text box value here
}
}
在按鈕中單擊
嘗試這個
GridViewRow row = GridView1.FooterRow;
firstName = ((TextBox)row.FindControl("TextBox1")).Text;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.