JQgrid 从列中保存和恢复对象

2024-03-23

可以将复杂的对象保存到列中并在之后恢复它。

这是一个例子: 杰森:

[{"datamain":"mydata",
       "address":{"data1":15,"data2":0.0,"data3":"1000"}}
}]

Jqgrid:

jQuery("#rowed5").jqGrid({  
        datatype: "local",
        loadtext:"Loading...",
        colNames:['Name',
                  'obaddress'],
        colModel:[
        {name:'datamain',index:'datamain', width:200,editable: true,edittype:'text'},
        {name:'address',index:'address', width:30, editable: false,hidden : true,edittype:'text'}
                ],
        cellsubmit: "clientArray",  
        pager:"#pager"
    });

如果我尝试访问地址:

 var rowData = $("#rowed5").getRowData(rowid);
var myaddress= rowData['address'];

然后我得到“[object Object]”,但它是一个字符串!!!我不能做:myaddress.data1

有什么推荐吗???


如果我正确理解您的问题,您可以执行以下操作:

var rowData = $("#rowed5").jqGrid("getLocalRow", rowid);
alert("data3=" + rowData.address.data3);

顺便说一下保存address您不需要创建隐藏列的部分"address". So 您不会在表中创建任何隐藏列来保存任何行特定的自定义数据。您应该像平常一样填写数据:使用datajqGrid的选项:

var mydata = [
    {
        id: "10",
        "datamain": "mydata",
        "address": {"data1": 15, "data2": 0.0, "data3": "1000"}
    },
    {
        id: "20",
        "datamain": "mydata2",
        "address": {"data1": 18, "data2": 0.1, "data3": "3000"}
    }
];

$("#rowed5").jqGrid({
    datatype: "local",
    data: mydata,
    colNames: ['Name'],
    colModel: [
        {name: 'datamain', width: 300, editable: true}
    ],
    height: "auto",
    ...
});

在这种情况下所有数据会保存在内部datajqGrid的参数。您可以使用$("#rowed5").jqGrid("getGridParam", "data")返回所有数据或使用$("#rowed5").jqGrid("getLocalRow", rowid)仅返回指定行的数据。

小演示 http://www.ok-soft-gmbh.com/jqGrid/complexlocaldata.htm现场演示该方法。数据每页显示一行。因此,您可以转到下一页并使用单元格编辑修改数据。保存后,将显示当前单元格中的“地址”信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQgrid 从列中保存和恢复对象 的相关文章