2012-05-09 12 views
1

を使用して無効にasp.netで私のコードです...それは、コードをレンダリングするとき、私はこのようにすることにより、ページが読み込まれ、すべてのドロップダウンリスト無効デフォルトで[dropdownlist][checkbox]がありますGridViewのItemTemplateに制御可能に/ここでjQueryの

var $ddls = $('select'); 
$ddls.prop("disabled", true); 

私の質問は:チェックボックスをオンにした場合にのみドロップダウンを有効にする方法はありますか?チェックボックスがオフになっている場合は、その後、私はRowDataBoundイベントでこれを行うだろうドロップダウン

<asp:GridView ID="routePlanGridView" runat="server" AutoGenerateColumns="False" 

    <Columns>   
     <asp:TemplateField HeaderText="Reason"> 
     <ItemTemplate> 
      <div class="selectreason"> 
       <asp:CheckBox CssClass="selectme" ID="chkReject" runat="server" Checked="false"> 
       </asp:CheckBox> 
       <asp:DropDownList runat="server" ID="detail" > 
        <asp:ListItem Selected="True" Value="0">Select me</asp:ListItem> 
        <asp:ListItem Value="1">one</asp:ListItem> 
        <asp:ListItem Value="2">two</asp:ListItem> 
        <asp:ListItem Value="3">three</asp:ListItem> 
        <asp:ListItem Value="4">four</asp:ListItem> 
       </asp:DropDownList> 
      </div> 
     </ItemTemplate> 
    </asp:TemplateField> 

    </Columns> 
</asp:GridView> 

答えて

1

を無効に。

toggleSelectList = function(el, selectID){ 
    var selectElement = document.getElementById(selectID); 
    if (selectElement){ 
     selectElement.disabled = !el.checked; 
    } 
} 
+0

「toggleSelectList」はどのようなものですか –

+0

@AbuHamzah:私の答えを更新しました。そのようなものはうまくいくはずです。 –

+1

@AbuHamzah:JavaScript関数にタイプミスがありました。その引数は 'selectID'の代わりに' select'と呼ばれていました。正確な構文で私の答えを更新しました。 –

2

正確にわからないが、私はあなたがcheck-boxJQuery.change()または.click()を使用することができると思う:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    var chk = e.Row.FindControl("CheckBox1") as CheckBox; 
    if (chk != null) 
    { 
     var ddl = e.Row.FindControl("DropDownList1") as DropDownList; 
     if (ddl != null) 
     { 
      //assign the JavaScript function to execute when the checkbox is clicked    
      //pass in the checkbox element and the client id of the select 
      chk.Attributes["onclick"] = string.Format("toggleSelectList(this, '{0}');", ddl.ClientID); 
     } 
    } 
} 

toggleSelectList機能は次のようになります。

$('.selectme').change(function() { 
    var ddl = $(this).siblings("input[type='select']"); 

    if ($('this').is(':checked')) 
    { 
     $('ddl').attr('disabled', false); 
    } 
    else 
    { 
     $('ddl').attr('disabled', true); 
    } 
}); 
+0

ありがとう、しかし私はasp.netコントロールを使用していますjqueryとは別の作品をプレーンhtmlコントロールが動作しますが、1 + –

+0

@AbuHamzah:asp.netを使用する場合は関係ありませんコントロール。 Jqueryはうまく動作します! –

+0

asp.netで試してみましたか? –

関連する問題