在我的网格中,选择了一行,然后使用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错误。
答案 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()方法上,反正感谢你的帮助。