用于jQuery jqGrid的自定义下拉格式设置程序

用于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 = [ {

我试图在jqGrid上格式化一个单元格,这样当用户编辑它时,他们就会看到一个自定义的组合框实现(称为activecombo),因为select html组件很难看

我已经阅读并查看了演示,但它们似乎没有达到我想要的效果。以下是我尝试过的:

    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);
    } 
} 
顺便说一句,你也可以这样做。这样,用户就可以在搜索/筛选对话框中使用相同的优势