簡體   English   中英

使用C#添加行的Gridview

[英]Gridview with C# adding rows

我想在網格視圖中添加一行。 我成功添加了文本框,但無法提取該值。它一直告訴我對象引用未設置為對象的實例。 在這行停止

string acc = Convert.ToString(((TextBox)GridView1.FooterRow.FindControl("accountID")).Text);

請問我在做什么錯

  1. 您不需要將字符串轉換為字符串( 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM