Не удается отключить раскрывающийся список Telerik с помощью JQuery - PullRequest
1 голос
/ 09 сентября 2011

Я пытаюсь использовать 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);
}

Ответы [ 5 ]

2 голосов
/ 12 сентября 2011

Хотя это на самом деле не jQuery, а просто обычный старый JavaScript, использующий клиентский API RadComboBox, в частности статью RadComboBoxItem (для включения функция) и статья OnClientSelectedIndexChanged (для получения подробной информации о eventArgs) я создал следующий быстрый маленький фрагмент:

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

Я только что протестировал его с предоставленным вами кодом ASPX, и он работал нормально.

0 голосов
/ 14 марта 2014

Это не работает!

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

Это работает!

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

    ...

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

   ...
0 голосов
/ 04 октября 2013

Здравствуйте,

RadComboBox имеет объект jQuery, созданный на стороне клиента. Чтобы отключить его, вам нужно вызвать функцию disable (). Чтобы включить его, вы вызываете функцию enable ().

Вот так:

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

Или:

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

Надеюсь, это поможет.

0 голосов
/ 05 марта 2013
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;
}
0 голосов
/ 09 сентября 2011

Немного удар, я ничего не знаю о Telerik, и я бесполезен с ASP / C #, но это может работать :)

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