getGridParam不返回数据项的ID
JQGrid getGridParam not returning ID of data item
我有一个使用从外部ajax请求生成的本地数据的网格(这里的外部是指不使用jqgrid的内置ajax)
ajax请求中的数据作为本地数据传递到网格中,网格设置为加载一次。
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由网格设置,但它不工作任何想法
只有从远端加载的数据(datatype
为"xml"
的"json"
)和使用选项loadonce: true
时,内部data
参数中才存在属性_id_
。如果在本地加载数据(使用datatype: "local"
),则_id_
不存在。
如果您正确地填充网格,由data
参数指定的数据(在您的情况下是DataFromResponse
)是包含id
属性以及用于填充列数据的其他属性的项数组。另一种选择是为某些列指定key: true
。在这种情况下,行的id
将从列中获取。
如果你没有指定id
信息(这是非常糟糕的),你需要访问所有本地数据,包括jqGrid生成的id,你需要得到两个jqGrid选项:_index
和data
。对象_index
包含网格的所有id作为属性。id属性的取值为id对应的data
数组中的整数索引。因此,可以使用for-in
循环枚举网格的所有id(您需要枚举_index
的属性)。详情请看答案和这个。
您还写道,您在gridComplete
内部的网格列中创建了按钮。这种方法对我来说不太好。最好将自定义格式化器与gridview: true
选项一起使用(参见答案)。此外,我根本不建议您使用gridComplete
。最好使用loadComplete
。
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- difference between '$(<%= DDL.ID %>) & $('
- 使用Javascript获取所选选项ID
- 根据id将json数组组合为一个json数组
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 对id以某个字符串开头的元素进行计数
- 如果元素's的ID以数字开头
- 通过id和class属性获取元素
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 使用当前日期生成随机id
- Javascript-ID冲突的几率
- Href:当前DIV中的目标ID
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Javascript复选框函数:;缺少:在属性id之后"
- Twitter引导程序Typeahead-Id&标签
- 如何与特定ID交谈
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何将数据项 ID 的值添加到另一个元素
- getGridParam不返回数据项的ID
- 如果数据项没有't提供";id";以及";文本";字段名