【发布时间】:2011-07-08 19:26:04
【问题描述】:
我知道使用日期选择器编辑单元格是可能的,因为引用 here 和 here。但是,当我单击单元格时,没有显示日期选择器。下面是相关列的 colModel 条目。我有可用的日期选择器 UI。
在其他示例中,dataInit 没有被引号包围。它在我的代码中,因为整个 colModel 是由 PHP 在 AJAX 请求期间动态创建的。我将它构建为一个数组,然后将它的 json_encode 传递回 jqGrid。 PHP 的 json_encode 创建有效的 JSON,因此所有键都被引用为字符串。我必须删除引号才能使 jqGrid 正常工作吗?如果有,怎么做?
日期列的 colModel 条目:
{
"editable":true,
"name":"date",
"index":"date",
"sorttype":"date",
"editrules":{"date":true},
"editoptions":{
"dataInit":"function(elem){
setTimeout(function(){
$(elem).datepicker();
},100);
}"
}
}
这里是ajax请求的结构:
$(document).ready(function(){
$.ajax({
type: "GET",
datatype: "json",
success: function(result){
try{
//alert(result);
result = jQuery.parseJSON(result);
}catch(err){
alert("error in success json " + err);
return;
}
var colN = result.colNames;
var colM = result.colModelList;
var colD = result.colDataList;
grid.jqGrid({
datatype: 'local',
colNames:colN, //column names
colModel:colM, //column options
data:colD, //table data
editurl: 'clientArray',//changes are not sent to server
cellEdit: true,
cellsubmit: 'clientArray',
});
}
});
});
另外,我使用的是 jqGrid 4.0.0
【问题讨论】:
-
奥列格回答here
-
这似乎与上述问题重复(属性名称已更改,但问题相同:您无法传递 javascript code 通过 JSON,它用于数据。您必须沿着该路径的某处进行一些处理,才能将字符串化的数据恢复为代码。