- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个网格,它使用从外部 ajax 请求生成的本地数据(外部我的意思是不使用 jqgrid 的内置 ajax)
来自 ajax 请求的数据作为本地数据传递到网格中,并且网格设置为 loadonce。
window.grid = $(window.tableName).jqGrid({
datatype: "local",
data: DataFromResponse,
height: "auto",
autowidth: true,
hidegrid: false,
ignoreCase: true,
loadonce: true,
pager: window.pagerName,
rowNum: 10,
viewrecords: true,
gridview: true,
caption: '',
colNames :[cols],
colmodel :[]{cols},
gridComplete: function() {
CreateButtons();
});
如您所见,网格在这个阶段是基本的,但是我们需要在名为“buttons”的列中添加一些按钮,我们使用 CreateButtons 方法来完成此操作。
function CreateButtons(){
var grid = $(window.tableName);
var data = grid.jqGrid('getGridParam', 'data');
$.each(data, function(index, item){
var cl = item._id_;
alert(cl);
});
}
这个函数的警告应该给我网格设置的行的 id 但它没有任何想法
最佳答案
仅当从远程源加载的数据(数据类型
是“json”
of "xml"
) 和选项 loadonce: true
被使用。如果在本地加载数据(使用 datatype: "local"
),则 _id_
不存在。
如果您正确填充网格,则 data
参数(在您的情况下为 DataFromResponse
)指定的数据是包含 id
属性的项目数组连同用于填充列数据的其他属性。另一种选择是为某些列指定 key: true
。在这种情况下,行的 id
将从列中获取。
如果您没有指定 id
信息(这非常糟糕)并且您需要访问所有本地数据,包括 jqGrid 生成的 id,您需要获得两个 jqGrid 选项:_index
和 数据
。对象 _index
包含网格的所有 id 作为属性。 id 属性的值是 data
数组中与 id 对应的整数索引。所以你可以使用for-in
循环来枚举网格的所有id(你需要枚举_index
的属性)。参见 the answer和 this one了解详情。
您还写道,您在 gridComplete
内的网格列中创建了按钮。这个方法似乎我不太好。最好将自定义格式化程序与 gridview: true
选项一起使用(参见 the answer )。此外,我根本不建议您使用 gridComplete
。最好使用 loadComplete
。参见 the answer了解详情。
关于javascript - JQGrid getGridParam 不返回数据项的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16715248/
我正在使用 var blkstr = jQuery("#toolbar1").getGridParam('selarrrow'); var roles = $.map(blkstr, functio
在寻呼机的自定义按钮中,我调用 grid.jqGrid("getGridParam", "data"), "data") 获取网格中的所有数据,但它返回空数组.当我在 loadComplete 函数中
使用此函数返回网格的列名称效果很好。拼接它返回的数组时会出现问题。 网格包含一个复选框作为第一列,因此我想将其从数组中删除。这是该代码。 var columnTitles = $(table).get
我有一个网格,它使用从外部 ajax 请求生成的本地数据(外部我的意思是不使用 jqgrid 的内置 ajax) 来自 ajax 请求的数据作为本地数据传递到网格中,并且网格设置为 loadonce。
我想检查搜索后的记录总数。但 getGridParam("records") 在 trigger("reloadGrid") 之后未运行。 这是我的代码。 goSearch : function()
我是一名优秀的程序员,十分优秀!