Как отключить / включить несколько флажков внутри Radcombobox с помощью JQuery? - PullRequest
1 голос
/ 24 марта 2012

У меня есть ItemTemplate, где каждый элемент содержит RadComboBox с включенными флажками.Мне нужно применить некоторую бизнес-логику, которая будет отключать или включать флажки в выпадающем списке в зависимости от выбора пользователя.Что мне нужно знать, это как отключить эти флажки.Например:

<Combobox CssClass="Assignees">
    <cb> <Item 1>
    <cb> <Item 2>
    <cb> <Item 3>
    <cb> <Item 4>

Если флажок элемента 4 установлен, все остальные флажки отключены.Если он не выбран, то все снова включено.Если выбраны элементы 1, 2 или 3, флажок элемента 4 отключен.

Я пробовал что-то вроде:

$(".AssigneeTag").find(":checkbox").click(
    function () {
        var allCheckboxes = $(this).closest(".AssigneeTag").find(":checkbox");
    });

Просто чтобы получить все флажки в выпадающем списке.Это ничего не возвращает.Тогда я знаю, что мне нужно пойти отсюда, чтобы проверить данные элемента, чтобы определить «тип», чтобы я мог понять, что скрывать или показывать.

Может ли кто-нибудь указать мне правильное направление?

РЕДАКТИРОВАТЬ: По запросу HTML.Я был в состоянии выкопать это из этого.Просто глядя на это, я не могу обернуться, что мне делать.Элементы, загруженные в список элементов, фактически являются объектами, которые содержат 3 поля;имя, гид и тип.Мне нужно посмотреть на тип, чтобы применить бизнес-логику, но я даже не вижу ее здесь:

<div id="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo" class="RadComboBox RadComboBox_Default AssigneeTag" ItemDataBound="Assignees_Bound" style="width:160px;">
    <table summary="combobox" style="border-width:0;border-collapse:collapse;table-layout:fixed;width:100%">
        <tr class="rcbReadOnly">
            <td style="margin-top:-1px;margin-bottom:-1px;width:100%;" class="rcbInputCell rcbInputCellLeft">
                <input name="ctl00$MainContent$lsvTickets$ctrl0$lsvActions$cboAssignTo" type="text" class="rcbInput" id="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo_Input" value="" style="display: block;" readonly="readonly" />
            </td>
            <td style="margin-top:-1px;margin-bottom:-1px;" class="rcbArrowCell rcbArrowCellRight"><
                a id="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a>
            </td>
        </tr>
    </table>

    <div class="rcbSlide" style="z-index:6000;">
        <div id="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo_DropDown" class="RadComboBoxDropDown RadComboBoxDropDown_Default " style="float:left;display:none;">
            <div class="rcbScroll rcbWidth" style="width:100%;">
                <ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;">
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />Mike ITTest</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />Jeremy Stafford</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />John Bell Test (Info. Tech.)</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />Mike ITTest (Info. Tech.)</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />AG Cust Support</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />AG Eng Support</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />AG HR Support</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />AG IT Support</li>
                </ul>
            </div>
        </div>
    </div>
    <input id="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo_ClientState" name="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo_ClientState" type="hidden" />
</div>

1 Ответ

0 голосов
/ 24 марта 2012

Ну, для начала, в вашем HTML есть синтаксическая ошибка, которая не будет работать для меня, пока я не исправлю ее.

См. Здесь: (ошибка в возвращаемом символе после "<" перед тэгом "a") </p>

<td style="margin-top:-1px;margin-bottom:-1px;" class="rcbArrowCell rcbArrowCellRight"><
    a id="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a>
</td> //  also see no reason for display block on "a" as it will cause it to have 0 width and be invisible (more or less)

Изменено слишком

<td style="margin-top:-1px;margin-bottom:-1px;" class="rcbArrowCell rcbArrowCellRight">
    <a id="ctl00_MainContent_lsvTickets_ctrl0_lsvActions_cboAssignTo_Arrow" style="overflow: hidden;position: relative;outline: none;">select</a>
</td>

Далее, проблема с флажком, я не был уверен, какую именно вещь вы хотите отметить и отметить, поэтому я добавляю флажок «Отметить все», который вы можете нажать, чтобы отметить все, или, если вы снимите флажок с имени, то проверьте все также не проверено. См. Рабочий jsFiddle ЗДЕСЬ и см. Код jQuery ниже:

$(function() {
    $("#rcbCheckAll").on("change", function(e) {
        $(".rcbCheckBox").prop("checked", $(this).prop("checked"));
    });
    $(".rcbCheckBox").on("change", function(e) {
        if (!$(this).is("checked")) $("#rcbCheckAll").prop("checked", false);
    });
})​
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...