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

    DropDownListを無効にして、Gridviewの編集リンクをクリックした後でのみ有効にしたいと思います。今のところ、編集リンクの前後に無効にすることをDropDownListが示しています。
    コード:
    Gridview Itemtemplate DropDownList Enabled

    <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のコードがうまくいかない理由を説明できますか? –

    関連する問題