2011-09-08 10 views
1

別のTelerik RadComboBoxの選択に基づいてTelerik RadComboBoxを有効にするためにJQueryを使用しようとしています。JQueryでTelerikドロップダウンリストを無効にできません

使用例:ユーザーがページを参照し、ddlRequiredが有効で、ddlListItemsが無効です。ユーザーが "Required"を選択した場合、ddlListItemsを有効にします。逆に、「オプション」が選択されている場合は、ddlListItemsを無効にします。

   <telerik:RadComboBox ID="ddlRequired" runat="server" Width="80px" ShowDropDownOnTextboxClick="true" EnableEmbeddedSkins="false" Skin="Classic" OnClientSelectedIndexChanged="OnSelectedIndexChanged"> 
        <Items> 
         <telerik:RadComboBoxItem Text="Required" Value="1" /> 
         <telerik:RadComboBoxItem Text="Optional" Value="0" /> 
        </Items> 
       </telerik:RadComboBox> 

       <telerik:RadComboBox ID="ddlListItems" runat="server" Width="200px" ShowDropDownOnTextboxClick="true" EnableEmbeddedSkins="false" Skin="Classic" Enabled="false"> 
        <ItemTemplate> 
         <asp:TextBox ID="txtBoxQ1" runat="server" Width="160"/> 
        </ItemTemplate> 
        <Items> 
         <telerik:RadComboBoxItem /> 
         <telerik:RadComboBoxItem /> 
        </Items> 
       </telerik:RadComboBox> 

ここでは、いくつかのアプローチを試してみたところです。私はそれが完全ではないことを認識します。それで刺しの

function OnSelectedIndexChanged() 
{ 
    var ddl = $find("<%=ddlListItemsQ1.ClientID%>"); 
    ddl.set_enabled(false); 
} 

答えて

-1

ビットこれは本当にありませんが、私はtelerikについて何も知らないし、私は、ASP/Cの#と役に立たないんだけど、このかもしれ仕事:)

$(document).ready(function(){ 
    $('#ddlRequired telerik:RadComboBoxItem').change(function() 
    { 
     if ($(this).val()) == true) 
      $('#ddlListItems').attr('Enabled', 'true'); 
     else 
      $('#ddlListItems').attr('Enabled', 'false'); 
    }); 
}); 
2

RadComboBoxのclient-side API、具体的にはRadComboBoxItem(enable関数用)とOnClientSelectedIndexChanged(eventArgsの詳細については記事)の記事を使用して、jQueryを使っています。

function OnSelectedIndexChanged(sender, eventArgs) { 
     var selectedItem = eventArgs.get_item(); 
     if (selectedItem.get_text() === "Required") { 
      var ddlListItemsClient = $find('<%= ddlListItems.ClientID %>'); 
      ddlListItemsClient.enable(); 
     } 
    } 

私が提供したASPXコードでテストしたところ、うまくいきました。

0
disableChildElements(document.getElementById(<%=dropdown_Id.ClientId%>")) 

function disableChildElements(objId) 
{ 
    var theObject = document.getElementById(objId); 
    var level = 0; 
    TraverseDOM(theObject, level, disableElement); 
} 

function TraverseDOM(obj, lvl, actionFunc) 
{ 
    for (var i = 0; i < obj.childNodes.length; i++) 
    { 
     var childObj = obj.childNodes[i]; 
     if (childObj.tagName) 
     { 
      actionFunc(childObj); 
     } 
     TraverseDOM(childObj, lvl + 1, actionFunc); 
    } 
} 

function disableElement(obj) 
{ 
    obj.disabled = true; 
} 
-1

こんにちは、

RadComboBoxは、クライアント側で作成されたjQueryオブジェクトを持っています。これを無効にするには、disable()関数を呼び出す必要があります。これを有効にするには、enable()関数を呼び出します。私はそれが役に立てば幸い

$(".rcbInput").attr('disabled', 'disabled'); 

var combo = $find("<%=RadComboBox1.ClientID%>"); 
    combo.disable(); 

または:そうのよう

0

これは機能しません。

$('#ddlListItems').attr('Enabled', 'false'); 

これは機能します。

@(Html.Kendo().DropDownListFor(m => m.RoleId) 
     .Name("RoleId") 

    ... 

    <script type="text/javascript"> 
     var ddlist = $("#RoleId").data("kendoDropDownList") 
     ddlist.enable(false); 

    ... 
関連する問題