簡體   English   中英

gridview findcontrol 返回空“”

[英]gridview findcontrol returning empty “”

我正在嘗試使用此代碼從 gridview 中的文本框中讀取

    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            string textBoxText = ((TextBox)row.FindControl("numTC")).Text;
            Response.Write(textBoxText);

        }
    }

此代碼不斷返回“”(空)

知道為什么會這樣嗎?

謝謝

確保您沒有在頁面的 PostBack 上重新綁定 GridView。 這可能是問題所在。

編輯

確保綁定GridView的代碼在以下代碼中:

C#

if ( !Page.IsPostBack ){
    // Code to bind the control
}

VB

If Not Page.IsPostBack Then
    ' Code to bind the control
End If

否則會發生什么是控件被“重建”並且值都丟失在 TextBox 的

更新:

出於測試目的,請嘗試執行 GridView1.DataBind(); 在您的方法開始時。

嘗試像這樣調試:

在 Button1_Click 方法的末尾設置斷點。

以調試模式 (F5) 運行該站點。

當執行在 Button1_Click 結束時停止時,打開位於屏幕底部的即時 Window。

在那里輸入:

GridView1.Rows 並查看它是否包含它應該包含的行數。

應該是這樣的:

System.Web.UI.WebControls.GridViewRowCollection} 計數:53 <-- 行數

如果它確實返回超過 0 行,則輸入:

GridView1.Rows[0].Controls 並查看它是否返回一行上正確數量的控件。

我可以使用 GridView1.Rows[2].Controls[n] 直接訪問一行上的控件,其中 n 是該行中控件的順序。

也嘗試 (TextBox)GridView1.Rows[0].FindControl("numTC") 看看它返回什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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