如何将格式化程序(日期)添加到jqgrid子网格

时间:2013-04-12 10:51:39

标签: jquery jqgrid formatter subgrid

我遇到了一个问题,我有下一个jqgrid:

grid.jqGrid({
    datatype: "xml",
    url:'../Controladores/cPedidos.php?action=lpp',
    mtype: 'POST',
    colNames:['FECHA','PROVEEDOR','USUARIO'],
    colModel:[
        {name:'fecha_compra',index:'fecha_compra',width:120, sorttype: 'date',
            formatter: 'date', formatoptions: { srcformat: 'm/d/Y H:i', newformat: 'd/m/Y H.i'} },
        {name:'nombre',index:'nombre',editable: false, width:560},
        {name:'usuario_id',index:'usuario_id',width:100, editable: false}

    ],
    rowNum:100,
    rowList:[50,100,200],
    pager: '#paginacion',
    gridview:true,
    rownumbers:true,
    ignoreCase:true,
    sortname: 'fecha_compra',
    viewrecords: true,
    sortorder: "desc",
    caption:"Pedidos",
    height: "100%",
    subGrid : true,
    subGridUrl: '../Controladores/cPedidos.php?action=lac',
    subGridModel: [{ name  : ['Codigo','Cantidad','Articulo','Estado','Rubro','Observaciones','Fecha Recibido','Usuario'], 
        width : [50,50,450,60,60,150,0,0] }],
    ondblClickRow: function(id, ri, ci) {
        // edit the row and save it on press "enter" key
        grid.jqGrid('editRow',id,true,null,null, 'clientArray');
    },
    onSelectRow: function(id) {
        if (id && id !== lastSel) {
            // cancel editing of the previous selected row if it was in editing state.
            // jqGrid hold intern savedRow array inside of jqGrid object,
            // so it is safe to call restoreRow method with any id parameter
            // if jqGrid not in editing state
            if (typeof lastSel !== "undefined") {
                grid.jqGrid('restoreRow',lastSel);
            }
            lastSel = id;
        }
    }
}).jqGrid('navGrid','#pager',{add:false,edit:false},{},{},myDelOptions,{multipleSearch:true,overlay:false});

我正在将主网格上的日期格式化为dd / mm // yy(FECHA),现在我需要对子网格进行“fecha recibido”,我不知道要放置forrmater代码< / p>

你怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您使用subGridModel创建子网格。它仅限于创建最简单的子网格(见the documentation)。如果您需要在子网格中使用格式化程序,则需要使用更灵活的方式:Subgrid as Grid

这种subgid的实现非常简单且非常灵活。您应该在主网格中实施subGridRowExpanded回调,而不是使用subGridModel。如果用户单击“消耗”按钮(“+”)以查看子网格jqGrid,则在扩展行下为您创建空行。如果创建空<div>元素,您可以在其中放置任何信息,包括任何其他网格(子网格)。您需要做的只是创建具有一些独特<table>属性的新id元素,并将<table>元素置于jqGrid创建您之前的空<div>元素内。通常,会根据id的id构建表的<div>,并将其作为subGridRowExpanded回调的第一个参数。

您可以在my old answer中进行回调的最简单的回调实现。您可以找到here的另一个例子。您可以在the documentation中找到更多此类实施的示例,或者仅在网络上或在stackoverflow上搜索"subGridRowExpanded"文本。