Dynamic 帮助其他人找到它
解决第二个问题没有简单的方法,但是你可以提出一个解决方案,但是你必须知道更多关于你做什么和如何做的细节。如何开始内联编辑(您是使用Dynamic 帮助其他人找到它,dynamic,jqgrid,options,Dynamic,Jqgrid,Options,解决第二个问题没有简单的方法,但是你可以提出一个解决方案,但是你必须知道更多关于你做什么和如何做的细节。如何开始内联编辑(您是使用inlineNav,格式化程序:“操作”还是直接调用editRow?您使用的是哪个版本的jqGrid(直到4.7版)?如何在colModel中定义带有select的列?您使用哪个数据类型,以及是否使用loadonce:true?我建议你们用这些信息单独提问 更新:如果您必须使用旧版本的jqGrid,则无法动态生成dataUrlfull,但因为您只需要在URL中添加Sp
inlineNav
,格式化程序:“操作”
还是直接调用editRow
?您使用的是哪个版本的jqGrid(直到4.7版)?如何在colModel
中定义带有select的列?您使用哪个数据类型
,以及是否使用loadonce:true
?我建议你们用这些信息单独提问
更新:如果您必须使用旧版本的jqGrid,则无法动态生成dataUrl
full,但因为您只需要在URL中添加SpecialValue=100”
部分,您可以遵循我在许多旧答案中描述的技巧(第一个可能是,但询问用户的财产名称选择可能会被误解)。您可以使用ajaxSelectOptions.data
来定义jQuery.ajax请求的data
参数。问题在于您只能定义一个ajaxSelectOptions.data
属性。因此,您可以添加以下jqGrid选项:
ajaxSelectOptions:{
数据:{
特殊值:函数(){
var rowid=$myGrid.jqGrid(“getGridParam”、“selrow”);
返回$myGrid.jqGrid(“getCell”,rowid,“SpecialValue”);
}
}
}
($myGrid
类似于$(“#grid”)
)
更新:您在问题的更新部分使用了未知函数getSelectValuesFromJSON
,getLookupValuesFromJSON
。这两个函数似乎都使用了synchronousAjax请求,这并不好。此外,您只为一个字段2
设置了编辑选项。value
设置所有选项
onsetrow:函数(rowid){
var$myGrid=$(此值);
$.ajax({
url:“someUrl”,
数据类型:“json”;
数据:{
特殊值:$myGrid.jqGrid(“getCell”,rowid,“Field1”)
},
成功:功能(数据){
//例如,响应数据具有以下格式:
//{“字段2”:[“v1”、“v2”、…]、“字段3”:[“v3”、“v4”、…]}
var文件,str;
用于(归档数据){
if(数据hasOwnProperty(存档)){
str=$.map(数据[字段],函数(项){
退货项目+“:”+项目
}).加入(“;”);
$myGrid.jqGrid(“setColProp”),存档{
编辑选项:{
值:str
}
});
}
}
$myGrid.jqGrid(“editRow”,rowid,true);
}
});
}
然而,“解决方案2”"与我的建议更接近。在选择行之前是否使用onsemeow
或并不重要。您可以向服务器发出异步Ajax请求,该请求返回所需的所有选择的信息。从服务器获得响应后(在success
callback的内部)您可以为所有选择设置editoptions.value
,然后才可以启动editRow
。这样,您就可以确保行的编辑将在所有选择中使用特定于行的选项
一些附加说明。我建议您在网格中验证gridview:true
选项。此外,我怀疑您以不完全正确的方式填充网格,因为您隐藏了PK
列,并且在选择行
和onSe之前使用index
而不是rowid
作为的第一个参数Electrow
。了解jqGrid的当前实现总是在网格的每一行(
元素)上分配id
属性是非常重要的。因此,您必须在每一项输入数据中提供id
信息。如果您想向用户显示id信息(因此,要在colModel
中使用主键创建列,则只需在列定义中包含key:true
属性。例如,您可以将key:true
添加到PK
列的定义中,这样就可以创建rowid
(或者在您的情况下为index
)使用与PK
相同的值。它简化了代码的许多部分。例如,jqGrid在编辑请求中向服务器发送id
参数。在请求中使用PK
是可行的。此外,如果使用repeatitems:false
格式的jsonReader
可以包含id:“PK”jsonReader
中的
而不是隐藏PK
列。它通知jqGrid从PK
获取rowid。jqGrid将在
的id
属性中保存PK
,并且您不需要在网格中具有相同信息的其他
最后一句话。我强烈建议您将复古版jqGrid 3.8.1更新到更新的版本,例如到。即使您不使用任何功能(例如),您也会有性能优势,现代web浏览器的外观会更好。您应该了解jqGrid 3.8.1是用旧版本测试的(和慢速jQuery 1.4.2)。与Internet Explorer 8一起使用的版本是最新的IE版本(IE9于2011年3月晚些时候发布)而且它更倾向于IE6/IE7。现代Chrome/Firefox/Safari的外观可能不好。这是你想要的吗?你在一篇帖子中问了两个问题。第一个问题的答案相对简单,我可以发布我的答案,但第二个问题解决起来并不容易,特别是如果你需要的话