Telerik RadGrid OnRowSelected Events, все готово, событие для множественного выбора? - PullRequest
2 голосов
/ 15 сентября 2011

У меня есть RadGrid с включенным множественным выбором:

<telerik:RadGrid runat="server" ID="RadGrid1" AutoGenerateColumns="false" AllowMultiRowSelection="true">
    <MasterTableView TableLayout="Fixed">
        <Columns>
            <telerik:GridBoundColumn DataField="Dialog" HeaderText="Dialog" DataType="System.String" />
        </Columns>
    </MasterTableView>
    <ClientSettings EnableRowHoverStyle="true">
        <Selecting AllowRowSelect="True" />
        <ClientEvents OnRowSelected="RowSelected"/>
    </ClientSettings>
</telerik:RadGrid>

И событие OnRowSelected срабатывает для каждой выбранной строки.При выборе 10 строк событие запускается 10 раз.Достаточно просто.

Мой вопрос заключается в том, какое событие я могу слушать, чтобы знать, когда выбраны все строки, которые будут выделены (в результате многократного выбора)?Мне нужно сделать запрос на публикацию с идентификаторами выбранных строк, и я не думаю, что было бы хорошо сделать 10 запросов на публикацию.Я могу запросить сетку, чтобы получить выбранные строки, мне просто нужно знать, когда это сделать;в идеале то, что не связано с таймаутами.Для этого должно быть событие, которое я пропускаю.

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Что-то работает с таймаутами:

var rowSelectedTimeout;

function RowSelected(rowObject) {
    if (window.rowSelectedTimeout) {
        // If selecting multiple rows, clear the previous row's rowSelectedTimeout
        window.clearTimeout(window.rowSelectedTimeout);
    }

    rowSelectedTimeout = window.setTimeout(function () {
        window.rowSelectedTimeout = null;

        alert('rows selected');
    }, 10);
}
0 голосов
/ 15 сентября 2011

Хитрость в том, чтобы выяснить, когда пользователь «остановил» выбор. Если множественный выбор выполняется с помощью Shift + клик, тогда, конечно, у вас есть много пунктов, которые нужно пройти, но что, если у вас одинаковое количество элементов (10), и пользователь Ctrl + щелкает каждый из них? Это может очень легко стать немного сложным. К сожалению, в RadGrid нет события, на которое вы можете подписаться, чтобы сработать после того, как действие множественного выбора завершило выделение всех строк.

Ваш лучший вариант здесь, вероятно, будет иметь внешнюю кнопку или что-то подобное, что вызовет эту публикацию, а затем использовать коллекцию SelectedItems RadGrid, так как тогда это позволит использовать более пакетный подход вместо сообщений, появляющихся для каждой строки. .

...