如何在网格重新绑定方法后选择telerik网格中的行?

时间:2013-02-14 14:41:27

标签: telerik grid

在我的网格中,选择了一行,然后使用grid.rebind()方法重新绑定该网格。现在我如何选择之前在重新绑定之前选择的同一行。

我尝试使用以下代码,但无法选择该行。

var selectedRow = $("#abcgrid tbody tr.t-state-selected");
var abcgrid = $("#abcgrid").data("tGrid");
    abcgrid .rebind();

selectedRow.addClass("t-state-selected");

也试过

var selectedRow = $("#abcgrid tbody tr.t-state-selected");
var selectedRowID = ($(selectedRow)[0]).cells[0].innerHTML;
var gridRows = $("#abcgrid .t-grid-content tbody > tr");
               if (gridRows != null) {
               gridRows.each(function (index, row) {
                  if (row.cells[0].innerHTML == selectedRowID ) {
                     $(row).addClass("t-state-selected");
                   }
               });
              }

这两个代码都不起作用。请指导我选择该行。我在搞什么。 注意 - 它们不是javascript错误。

2 个答案:

答案 0 :(得分:0)

如果您的行顺序没有改变,您可以使用do:

var selectedRow = $("#abcgrid tbody tr.t-state-selected");
console.log(selectedRow)
var indexSelecedRow = selectedRow.index();
console.log(indexSelecedRow )
var abcgrid = $("#abcgrid").data("tGrid");
    abcgrid .rebind();

var trs = $("#abcgrid tbody tr");
console.log(trs)
selectedRow = $("#abcgrid tbody tr").eq(indexSelecedRow);
console.log(selectedRow )

如果网格内容发生变化,那么每一行都应该有一个带有唯一id参数的隐藏列。然后,您可以保存此id参数并在重新绑定后使用它。

答案 1 :(得分:0)

非常感谢您的努力。我通过在.OnRowDataBound()客户端事件上编写代码解决了这个问题。我将selectedID变量保存为隐藏,然后在.OnRowDataBound()方法中,我在下面写了一行

var selectedRowID = $("#hdnSelectedID").val();
    if selectedRowID != null && selectedRowID != '') {
        if (e.dataItem.ID == selectedRowID ) {
            e.row.className = "t-state-selected";
        }
    }

我认为问题出在rebind()方法上,反正感谢你的帮助。