jqGrid内联编辑:在下拉列表旁边添加自定义元素

时间:2014-12-16 21:19:42

标签: javascript jquery jqgrid

我有以下网格,其中包含来自本地数组的数据(我使用自己的自定义调用保存):

var datagrid = [
    {name:"Id",description:"description",entityid:"12",amount:"100"},
    {name:"Id2",description:"description",entityid:"17",amount:"200"}
];

$grid = $("#grid1").jqGrid({
    datatype: "local",
    data: datagrid,
    height: "auto",
    autowidth: true,
    shrinkToFit: false,
    colNames:['Name','Description', 'Entity', 'Amount', ''],
    colModel:[
        {index: 'name', name: 'name', editable: true, edittype: 'text'},
        {index: 'description', name: 'description', editable: true, edittype: 'text'},
        {index: 'entityid', name: 'entityid', editable: true, edittype: 'select', formatter: 'select', edittype: 'select', editoptions: 
            {
                dataUrl: 'url/to/drop/down/data',
                buildSelect: function(data)
                {
                    return buildSelectFromJson(data, 'oid', 'oname');
                }
            }
        },
        {index: 'amount', name: 'amount', editable: true, edittype: 'text'},
        {name:'act', index:'act', sortable:false, width: "140px"}
    ],
    onSelectRow: function(rowid){
        rowSelected('grid1', rowid);
    },
    rowNum: 500,
    editurl: "clientArray",
    caption: "Details",
    ajaxSelectOptions: {contentType: "application/json", dataType: 'json'}
});

$grid.jqGrid('hideCol',['act']);

" entityid"旁边下拉我想添加一个按钮来显示弹出窗口以输入新实体。我想在弹出窗口关闭后在下拉列表中加载新实体。

以前我使用过 editoptions:{value:getValueFunction} 但是我在堆栈溢出中读了一些建议反对它,无论如何我在弹出窗口关闭后无法在下拉列表中加载新实体。但我能够以这种方式添加按钮:

function rowSelected(gridid, rowid){
    var $grid = $("#" + gridid);
    var rowData = $grid.jqGrid('getRowData', rowid);

    $grid.jqGrid('showCol',["act"]);

    var oneditfunction = function(){
        var button = '<input id="newFieldRange" type="button" value="+"></input>';
        $grid.find("select").parent().append(button);
        $("#newEntity").on('click', function () {
            newEntity(gridid, rowid);
        });
    };

    $grid.jqGrid('editRow', rowid, {oneditfunc: oneditfunction});
}

对于 rowSelected 函数使用相同的代码以及上面针对网格显示的代码,不添加该按钮。下拉列表已成功填充数据。

我有以下问题:

1)如何向&#34;实体&#34;添加自定义按钮?细胞?这不是建议吗?出于简化的原因,我显示的列和数据不是真实数据。由于某些限制,您无法在下拉列表旁边添加其他列(我们使用&#39; act&#39;列为&#34;保存&#34;和&#34;取消&#34;按钮)。我想在下拉菜单的同一单元格中添加按钮。除非有其他解决方案。

2)关闭&#34;新实体&#34;后,如何强制下拉重新加载?弹出?我在jqGrid wiki中找不到任何东西。

编辑我可以使用jQGrid onsuccessfunc的{​​{1}}添加按钮。但我被迫使用&#34; select&#34; jqgrid选择器没有指定id,因为和元素没有任何id。我可能需要添加另一个会导致问题的下拉列表。我错过了什么吗?

提前感谢您的回复。

0 个答案:

没有答案