【发布时间】:2015-03-18 13:55:18
【问题描述】:
我有一个 jqGrid,我希望在页面加载时选择第一行。我找到了几种不同的方法,但它们似乎都不适合我。数据来自 ajax 调用,据我所知,网格正在尝试在加载任何数据之前选择第一行。
var reqListGrid = new BaseGrid("#request_list");
reqListGrid.edit_url = '...'
reqListGrid.name = 'Request List'
reqListGrid.colNames = ["Employee", "Code", "Start Date", "Submitted", "Hours"]
reqListGrid.height = '200px';
reqListGrid.width = 'auto';
reqListGrid.colModel = [
{name:'req_emp', ...},
{name:'req_code', ...},
...
];
reqListGrid.gridComplete = function(){
var req_top_row = $("#request_list").getDataIDs()[0];
$("#request_list").setSelection(req_top_row, true);
};
reqListGrid.createGrid();
我在 gridComplete 方法中设置了一个断点,但 Chrome 从来没有命中它。有什么建议吗?
【问题讨论】:
-
您使用的
BaseGrid类是什么?一些选项(如edit_url)似乎也很奇怪。为什么不直接使用$("#request_list").jqGrid({/*all options and callbacks*/});?我建议您阅读the post,它描述了gridComplete和loadComplete之间的区别。在大多数情况下,gridComplete是错误的回调。 -
BaseGrid 只是我的风格化标准网格(颜色、寻呼机按钮等)。我也尝试过使用该语法,但也没有用。
-
问题只是因为您调用
reqListGrid.createGrid()来创建网格,我想您的问题的原因在BaseGrid的代码中。如果调用gridComplete是正确的。您能否在问题文本中附加BaseGrid的构造函数代码和createGrid方法?为了告诉信任,我认为在此案例中使用一些额外的BaseGrid没有任何优势。
标签: javascript jquery jqgrid