Telerik radgrid和GridClientSelectColumn如何使用“click”而不是“ctrl click”)

时间:2012-03-01 11:45:37

标签: telerik telerik-grid multi-select

我有一个telerik radgrid并添加了一个GridClientSelectColumn以允许用户选择单行或多行,但默认情况下是ctrl单击以选择多行。

我想要以下功能,而不必使用我自己的javascript覆盖它。

  • 用户点击行并选中复选框
  • 用户点击选中的行并取消选中复选框
  • 用户点击行,然后点击另一行。两个复选框都已选中。
  • 用户不必使用“ctrl click”

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:3)

我在telerik论坛的帮助下完成了这项工作。

Forum post

将以下代码添加到RadCodeBlock

var originalClickedRowState = null;
var clickedRow = null;

function rgGrid_OnRowClick(sender, args) {
    clickedRow = args.get_gridDataItem();
    originalClickedRowState = args.get_gridDataItem().get_selected();
}

function rgGrid_OnRowDeselecting(sender, args) {
    if (clickedRow != null && clickedRow != args.get_gridDataItem()) {
            args.set_cancel(true);
    }
}

function rgGrid_OnRowSelecting(sender, args) {
    if (clickedRow == args.get_gridDataItem() && originalClickedRowState) {
        args.set_cancel(true);
        originalClickedRowState = null;
        clickedRow = null;
    }
}

function rgGrid_OnRowSelected(sender, args) {
    originalClickedRowState = null;
    clickedRow = null;
}

问题是你需要在网格ClientSettings.ClientEvents中连接 OnRowCreating OnRowCreated 事件

function OnRowCreating(sender, args) {}
function OnRowCreated(sender, args) {}