Получение значения следующего узла с использованием jQuery - PullRequest
0 голосов
/ 28 марта 2012

Какой самый быстрый способ получить следующий узел строки, используя jQuery?Вот сгенерированная разметка TreeList, которая является типом GridView asp.net.Я должен получить lblWorkItemId, что 199.Обратите внимание, что это из привязанного элемента управления.

<tr id="ctl00_PageContent_rtlRshItems_ctl04__2" class="rtlR rtlRL" style="background-color:Lavender;">

<td align="left" valign="middle" style="width:90px;">
    <div id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut" class="RadComboBox RadComboBox_Windows7">
        <table class="rcbFocused" style="border-width: 0pt; border-collapse: collapse;" summary="combobox">
            <tbody>
                <tr class="rcbReadOnly">
                    <td class="rcbInputCell rcbInputCellLeft" style="width:100%;">
                        <input id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_Input" class="rcbInput" type="text" readonly="readonly" value="Submitted" name="ctl00$PageContent$rtlRshItems$ctl04$rcbStatut" autocomplete="off">
                    </td>
                    <td class="rcbArrowCell rcbArrowCellRight">
                        <a id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a>
                    </td>
                </tr>
            </tbody>
        </table>

        <input id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_ClientState" type="hidden" name="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_ClientState" autocomplete="off">
    </div>
</td>

<td class=" rtlCL" style="width:0px;">
    <asp:label id="lblWorkItemId" text="199" visible="false"> </asp:label>
</td>

Следующий метод javascript будет вызван, когда выбранное значение в выпадающем списке будет изменено на определенное значение:

    function OnClientSelectedIndexChanged(sender, eventArgs) {
        var item = eventArgs.get_item();
        if (item.get_text() == "Refused") {
            var treeList = $find("<%= rtlRshItems.ClientID %>");
            // var workItemId = [...]
            OpenReasonWindow(workItemId);
        }
    }

1 Ответ

2 голосов
/ 28 марта 2012

Используя ваш шаблон кода:

    function OnClientSelectedIndexChanged(sender, eventArgs) {
        var item = eventArgs.get_item();
        if (item.get_text() == "Rejetée") {
            var combo = $('input[id*="rcbStatut_Input"]')
            var workItemId = combo.closest('tr.rtlRL').find('[id$="lblWorkItemId"]').attr('text');
            OpenReasonWindow(workItemId);
        }
    }

Примечание. Обычно я бы применял этот тип обработчиков незаметно, а не в разметке.

...