我在MVC应用程序中使用jqGrid。我正在使用"scroll: true"
选项。我的问题是;在特定页面上重新加载jqGrid之后:
$("#jqTable").trigger("reloadGrid", [{ page: next_page }]);
我无法获得应该存在的新ID:
var ids = $("#jqTable").getDataIDs();
修改:
另外,我忘了说在reloadGrid之后我甚至没有看到下一页的行。
以下是更详细的说明:
有一个网页,我必须在jquery对话框的Enter键上显示jqgrid中某些选定行的详细信息。我只用Enter键逐行浏览网格。首先输入=打开对话框。第二个输入是保存。因此,根据我的客户的意愿,我必须标记当前行并选择下一行的代码是:
//declaration of global variables as selected_index -> current index of id in $("#jqTable").getDataIDs() array ...
//...
//In this moment jquery dialog is open. I work on jqgrid on underlying page:
//Set status of current row:
$("#" + selected_row_id).find("td").css("background-color", "azure");
$("#jqTable").jqGrid("setCell", selected_row_id, "Status", "Completed");
//Select next row:
selected_index = selected_index + 1;
temp_id = selected_row_id;
selected_row_id = $("#jqTable").getDataIDs()[selected_index];
if (selected_row_id === undefined) {
//If I am here it means that I have to jump to next page!
//Trying to simulate virtual scroll if id is undefined - because id is on the next page!
current_page = current_page + 1; // SO, IT IS NEXT PAGE!
$("#jqTable").trigger("reloadGrid", [{ page: current_page }]);
//Here selected_row_id is still undefined after this line of code:
selected_row_id = $("#jqTable").getDataIDs()[selected_index];
}
$("#jqTable").setSelection(selected_row_id, true);
答案 0 :(得分:0)
$("#jqTable").trigger("reloadGrid")
的 loadComplete
和$("#jqTable").setSelection(rowid)
内部事件处理程序集选择。
尝试在loadComplete
事件处理程序
loadComplete: function () {
selected_row_id = $("#jqTable").getDataIDs()[selected_index];
}
假设您在重新加载后尝试获取低于$(" #jqTable")的ID,请尝试此操作,
var IDs = [];
$("#jqTable").find("span").each(function(){ IDs.push(this.id); }); // find with your element as span
jQuery的内置map()函数:
var IDs = $("#jqTable span[id]") // find spans with ID attribute
.map(function() { return this.id; }) // convert to set of IDs
.get(); // convert to instance of Array (optional)
答案 1 :(得分:0)
这一行:
$("#jqTable&#34)最接近。("的.ui-的jqGrid-BDIV&#34)scrollTop的(2400);
帮助我以编程方式滚动,等待刷新网格数据的超时帮助我选择合适的行!
但是,这不是稳定的解决方案。我得检查一下......