0

在我的网格中,选择了一行,然后我使用 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 错误。

4

2 回答 2

0

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

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 参数并在重新绑定后使用它。

于 2013-02-14T14:59:09.670 回答
0

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

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

我认为问题出在 rebind() 方法上,无论如何感谢您的帮助。

于 2013-02-18T12:15:02.503 回答