c#
  • asp.net
  • gridview
  • itemtemplate
  • dropdownbox
  • 2016-07-28 80 views 1 likes 
    1

    我希望DropDownList被禁用,並且只有在點擊編輯鏈接Gridview後才能啓用它。截至目前,它顯示DropDownList在編輯鏈接之前和之後被禁用。
    代碼:
    Gridview Item模板DropDownList已啓用

    <asp:DropDownList ID="DropDownList1" runat="server" Height="30px" Width="190px" SelectedValue='<%# Eval("FAQGroup") %>' Enabled="false" > 
        <asp:ListItem Value="Most asked FAQ"></asp:ListItem> 
        <asp:ListItem Value="Normal FAQ"></asp:ListItem> 
    </asp:DropDownList> 
    

    aspx.cs

    protected void gvFAQ_RowEditing(object sender, GridViewEditEventArgs e) 
        { 
         gvFAQ.Columns[3].Visible = true; 
    
         DropDownList DDL= (DropDownList)gvFAQ.Rows[e.NewEditIndex].FindControl("DropDownList1"); 
         DDL.Enabled = true; 
    
         gvFAQ.EditIndex = e.NewEditIndex; 
         bind(); 
        } 
    
    +0

    那是RowEditing事件觸發,如果是這樣,有什麼用DDL當你把一個斷點就行了發生在那裏你」試圖啓用該控件? –

    +0

    是的,RowEditing事件正在運行。突出顯示的DDL爲藍色。 –

    回答

    4

    當你在RowEditing事件處理程序的末尾調用bind,GridView控件被清除和重新填充,並創建一個新的DropDownList每一行。在RowDataBound事件處理程序中的數據被綁定後,控制必須使能,例如:

    protected void gvFAQ_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
        if (e.Row.RowType == DataControlRowType.DataRow) 
        { 
         DropDownList ddl = e.Row.FindControl("DropDownList1") as DropDownList; 
         ddl.Enabled = e.Row.RowIndex == gvFAQ.EditIndex; 
        } 
    } 
    
    +0

    這是如何檢查編輯鏈接被點擊的情況? –

    +0

    @devlincarnate - 它用'EditIndex'檢查該行是否是編輯過的行。 – ConnorsFan

    +0

    你能解釋爲什麼OP的代碼不起作用嗎? –

    相關問題