2009-06-12 59 views
0

我有一個GridView選擇的值,每行有編輯按鈕。點擊後,其中一列變成一個下拉列表,用戶可以選擇值。編輯按鈕變成更新 - 非常簡單的通常情況。現在獲取從下拉列表中選擇一個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網站形成

+0

在下拉列表中的值靜態或正在綁定? – 2009-06-12 17:50:39

回答

1

得到它!

這是的IsPostBack,我錯過了它,所以在GridView當時正在反彈每個頁面負載,並且因爲下拉列表是網格內的數據丟失。

但是,我忘記在這裏提到的一件事是,所有這些代碼都位於用戶控件(ascx文件)內,而IsPostBack屬性適用於頁面而不是控件,在我的情況下這是無用的。例如,在我的情況下,我手動添加控件,所以IsPostback將始終如此,所以爲了避免這個問題,我必須實現基於會話的解決方案。希望這可以幫助某人。

還有usercontrol.IsPostBack屬性,但它並沒有達到預期效果,或許他們是對3.0

0

首先想到的是,你應該做的可能,而SelectedItem.Value比SelectedItem.ToString()。

+1

或者只是((DropDownList的)currentRow.FindControl( 「ddlValueTwo」))的SelectedValue。 – 2009-06-12 17:43:38

1

看起來像一個綁定錯誤,您正在嘗試中不存在尚未喲訪問數據...

相關問題