用于jQuery jqGrid的自定义下拉格式设置程序
我试图在jqGrid上格式化一个单元格,这样当用户编辑它时,他们就会看到一个自定义的组合框实现(称为activecombo),因为select html组件很难看 我已经阅读并查看了演示,但它们似乎没有达到我想要的效果。以下是我尝试过的:用于jQuery jqGrid的自定义下拉格式设置程序,jquery,jqgrid,drop-down-menu,formatter,Jquery,Jqgrid,Drop Down Menu,Formatter,我试图在jqGrid上格式化一个单元格,这样当用户编辑它时,他们就会看到一个自定义的组合框实现(称为activecombo),因为select html组件很难看 我已经阅读并查看了演示,但它们似乎没有达到我想要的效果。以下是我尝试过的: var maritalStatusPickerFunction = function(cellvalue, options, rowObject) { var optionsArray = [ {
var maritalStatusPickerFunction = function(cellvalue, options,
rowObject) {
var optionsArray = [ {
"id" : 1,
"status" : "Married"
}, {
"id" : 2,
"status" : "Divorced"
}, {
"id" : 3,
"status" : "Separated"
}, {
"id" : 4,
"status" : "Widowed"
}, {
"id" : 5,
"status" : "Unmarried"
}
];
var comboInput = $("<input type='text' value='" + cellvalue
+ "' />");
comboInput.activecombo( {
source : optionsArray
});
return comboInput;
};
$('#relationshipsGrid').jqGrid( {
datatype : "local",
colNames : [ 'Contact', 'Relationship' ],
colModel : [ {
name : 'contact',
index : 'contact',
width : 420
}, {
name : 'relationship',
index : 'relationship',
editable : true,
formatter : maritalStatusPickerFunction,
width : 120
} ],
width : 600,
height : 100,
cellEdit : true,
editurl : "server.php"
});
var maritalStatusPickerFunction=函数(单元格值、选项、,
行对象){
var optionsArray=[{
“id”:1,
“身份”:“已婚”
}, {
“id”:2,
“身份”:“离婚”
}, {
“id”:3,
“状态”:“已分离”
}, {
“id”:4,
“身份”:“丧偶”
}, {
“id”:5,
“身份”:“未婚”
}
];
var comboInput=$(“”);
comboInput.activecombo({
来源:optionsArray
});
返回输入;
};
$('relationshipsGrid').jqGrid({
数据类型:“本地”,
colNames:['联系人','关系'],
colModel:[{
姓名:'联系人',
索引:“联系人”,
宽度:420
}, {
名称:'关系',
索引:'关系',
是的,
格式化程序:maritalStatusPickerFunction,
宽度:120
} ],
宽度:600,
身高:100,
是的,
editurl:“server.php”
});
但这显然不是我应该做的,因为这只是在单元格的输入中显示对象
有人能给我指点吗
谢谢
Amy如果需要在编辑单元格时实现组合框的自定义实现,则应使用而不是 自定义格式化程序用于将单元格构建为字符串的HTML表示形式。自定义编辑控件用于创建自定义DOM元素,该元素将放置在编辑字段的
元素中。例如,请参阅和旧答案
我不知道activecombo插件,但在我看来,您不能编写自定义编辑控件。相反,您可以尝试在like中定义dataInit
事件句柄
或者如果你有什么问题,比如
editoptions: {
dataInit : function (elem) {
setTimeout(function(){
$(elem).activecombo( {
source : optionsArray
});
},100);
}
}
顺便说一句,你也可以这样做。然后,用户可以在搜索/筛选对话框中使用相同的优势。如果需要在编辑单元格时实现组合框的自定义实现,则应使用而不是 自定义格式化程序用于将单元格构建为字符串的HTML表示形式。自定义编辑控件用于创建自定义DOM元素,该元素将放置在编辑字段的
元素中。例如,请参阅和旧答案
我不知道activecombo插件,但在我看来,您不能编写自定义编辑控件。相反,您可以尝试在like中定义dataInit
事件句柄
或者如果你有什么问题,比如
editoptions: {
dataInit : function (elem) {
setTimeout(function(){
$(elem).activecombo( {
source : optionsArray
});
},100);
}
}
顺便说一句,你也可以这样做。这样,用户就可以在搜索/筛选对话框中使用相同的优势