簡體   English   中英

在更新時從GridView內的下拉列表中獲取選定的值

[英]Getting a selected value from the drop down list inside a GridView on Update

我有一個GridView,每一行都有“編輯”按鈕。 單擊后,其中一列會變成一個下拉列表,用戶可以在其中選擇值。 “編輯”按鈕變為“更新”-非常簡單的通常情況。

現在,單擊“更新”后,我似乎無法獲取所選的下拉列表。 這是我的代碼:

    protected void gv_UpdateRow(string arg)
{
    int currentIndex = gv.EditIndex;
    gv.EditIndex = -1;

    GridViewRow currentRow = gv.Rows[currentIndex];

    try
    {
      string value2 = ((DropDownList)currentRow.FindControl("ddlValueTwo")).SelectedItem.ToString();

    }
    catch
    {
        Response.Write("error");
    }


    BindGridView(); 
}

因此,基本上,程序執行總是以catch語句結束。 我已檢查並找到下拉列表,但未找到所選項目時會引發異常。

是什么賦予了?

我使用c#asp.net 2.0 Web表單

看起來是一個數據綁定錯誤,您正在嘗試訪問尚不存在的數據...

得到它了!

它是IsPostback,我很想念它,所以gridview在每次頁面加載時都會反彈,並且由於下拉列表位於網格內部,因此數據丟失了。

但是,我在這里忘記提及的一件事是,所有這些代碼都位於用戶控件(ascx文件)中,並且IsPostBack屬性適用於頁面而不是控件,在我的情況下這是沒有用的。 例如,在我的情況下,我手動添加了控件,因此IsPostback始終為true,因此為避免此問題,我必須實現基於會話的解決方案。 希望這對某人有幫助。

也有usercontrol.IsPostBack屬性,但是它沒有達到預期的效果,也許他們正確地使用了3.0

首先想到的是,您可能應該執行SelectedItem.Value而不是SelectedItem.ToString()。

暫無
暫無

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

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