读取jqgrid中的可编辑输入值

时间:2012-08-28 13:19:55

标签: jquery jqgrid

我有以下内联可编辑网格

 var lastsel;
$("#mygrid").jqGrid({
        data:JqgridResponse.rows,
        datatype: "local",
        colNames:['DATE', 'SOURCE', 'DEST', 'FROM', 'TO'],
        colModel:[   
                  //1140 width
            {name:'time', index:'time', width:170 ,sortable:false},
            {name:'source', index:'source', width:290,sortable:false,editable:true,editoptions:{size:"33",maxlength:"50"}},
            {name:'dest', index:'dest',  width:290,sortable:false,editable:true,editoptions:{size:"33",maxlength:"50"}},
            {name:'from', index:'from', width:170,sortable:false,editable:true, edittype:"select",editoptions:{value:"us:US;gb:GB;fr:FR"}},
            {name:'to', index:'to', width:170,sortable:false,editable:true, edittype:"select",editoptions:{value:"us:US;gb:GB;fr:FR"}}
        ],
        multiselect: true,
            rownumbers: false,
        rowNum:10,                                      
        rowList:[10,50,100],                            
        height: "100%",
        autowidth: true,
        pager: '#pager',                                
            viewrecords: true,                              
            sortorder: "desc",
            ondblClickRow: function(id) {           
                if(id && id!==lastsel){
                jQuery('#mygrid').jqGrid('restoreRow',lastsel);
                jQuery('#mygrid').jqGrid('editRow',id,true);
                lastsel=id;
            }
            }

    });

导航按钮及其事件

$("#mygrid").navButtonAdd('#pager',
        {   caption:"", 
            buttonicon:"ui-icon-disk", 
            onClickButton: updateLocations,
            title:"Update Locations", 
            cursor: "pointer"
        } 
);

function updateLocations(obj, args){
    //how to get the edited data source, dest, from, to ?
}

如何在updateLocations方法中获取“source”和“dest”的编辑输入值,以及“from”和“to”的选定值?

我试图在Firebug中找到已编辑的行,但输入完全没有值!例如,对于“来源”

<td aria-describedby="mygrid_source" title="N-finger" style="" role="gridcell">
<input id="36_source" class="editable" type="text" size="33" maxlength="50" name="sourcespan" role="textbox">
</td>

我错过了什么吗?感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用saveRow保存所有修改内容;调用restoreRow只会将行还原为之前的值。

我不相信有一种方法只会获得您的更改,但您可以使用具有顶级范围的数组跟踪所有已更改的行。然后,您需要修改ondblClickRow以使用该数组来跟踪已修改的每个行ID。然后在updateLocations中,您可以使用getRowData获取每个行的数据,并(例如)通过POST将其保存到服务器。