关于c#:如何将其他postdata传递到添加记录功能-JQGrid-MVC。网

How to pass additional postdata into an add record function - JQGrid - MVC . NET

我正在MVC项目上使用JQGrid插件。我试图避免使用"会话"。使用JQGrid的serializedata方法,我已经能够将额外的postdata传递到我的编辑和删除函数中。

E.G.

1
2
3
4
5
serializeEditData: function (postdata)
{
    var rowdata = jQuery('#gridId').getRowData(postdata.id);
    return {id: postdata.id, oper: postdata.oper, SomeExtraData: $('#extradata').val()};
}

但是,似乎没有serializeAddData函数。在发送之前,还有另一种方法可以更改add方法的发布数据吗?


有一种方法editGridRow可以为" Edit "和" Add "对话框实现表单编辑。因此,在两种情况下都可以使用相同的事件处理程序serializeEditData。例如,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
        serializeEditData: function (postdata) {
            // your implementation of serializeEditData for edit
        }
    },
    {/*add options*/
        serializeEditData: function (postdata) {
            // your implementation of serializeEditData for add
        }
    },
    {/*del options*/},
    {/*search options*/}

/);

如果需要将所有发布的数据转换为另一种格式(例如进行JSON序列化),通常

serializeEditData事件非常实用。为了能够传递额外的postdata参数,可以使用editData参数代替,该参数的含义与jqGrid的postData参数相同:

1
2
3
4
5
6
7
8
9
10
11
$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
     editData: {SomeExtraData: $('#extradata').val()}
    },
    {/*add options*/
     editData: {SomeExtraData: $('#extradata').val()}
    },
    {/*del options*/},
    {/*search options*/}
);

或以这种方式更好(请参见以下有关将函数用作postData属性的用法的答案):

1
2
3
4
5
6
7
8
9
10
11
$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
     editData: {SomeExtraData: function() {return $('#extradata').val();}}
    },
    {/*add options*/
     editData: {SomeExtraData: function() {return $('#extradata').val();}}
    },
    {/*del options*/},
    {/*search options*/}
);