1

JQuery を使用して、別の Telerik RadComboBox の選択に基づいて Telerik RadComboBox を有効にしようとしています。

ユースケース: ユーザーがページにアクセスし、ddlRequired が有効になり、ddlListItems が無効になります。ユーザーが「必須」を選択した場合、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);
}
4

5 に答える 5

2

これは実際には jQuery ではありませんが、RadComboBox のクライアント側 API、特に RadComboBoxItem に関する記事( enable 関数について) とOnClientSelectedIndexChangedに関する記事 (eventArgs の詳細について) を使用して、単純な古い通常の JavaScript にすぎません。次の簡単なスニペット:

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

提供された ASPX コードでテストしたところ、問題なく動作しました。

于 2011-09-12T16:31:02.100 に答える
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);

   ...
于 2014-03-14T06:18:31.850 に答える
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;
}
于 2013-03-05T07:16:02.820 に答える
-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');
    });
});
于 2011-09-08T23:26:38.507 に答える