C# 对jqGrid编辑函数使用表单按钮

C# 对jqGrid编辑函数使用表单按钮,c#,jquery,asp.net,jqgrid,C#,Jquery,Asp.net,Jqgrid,使用jqGrid 5.0.1,我在一个用C#编写的asp.net webforms项目中有一个功能正常的网格。编辑功能通过网格导航栏中的按钮进行控制。为了使页面与项目中的其他页面保持一致,我想从表单上的按钮调用编辑功能-与jqGrid分离。关于这一点,我还没有发现太多,但有一个主题涉及到addrow函数。所以我实现了代码,当我点击按钮时,编辑表单出现了一瞬间,然后消失了 我真的被这件事难住了。我查看了文档并尝试了很多组合,但还没有开始工作,我甚至还没有开始使用编辑和删除功能——在删除功能上,我需

使用jqGrid 5.0.1,我在一个用C#编写的asp.net webforms项目中有一个功能正常的网格。编辑功能通过网格导航栏中的按钮进行控制。为了使页面与项目中的其他页面保持一致,我想从表单上的按钮调用编辑功能-与jqGrid分离。关于这一点,我还没有发现太多,但有一个主题涉及到addrow函数。所以我实现了代码,当我点击按钮时,编辑表单出现了一瞬间,然后消失了

我真的被这件事难住了。我查看了文档并尝试了很多组合,但还没有开始工作,我甚至还没有开始使用编辑和删除功能——在删除功能上,我需要将帖子数据中的附加信息发送到我的编辑url。我的网格代码如下,包括注释掉的导航按钮编辑。还有其他人这样做吗

        $(function () {
        $('#statusGrid').jqGrid({
            url: 'Handler2.ashx?id=' + id.toString(), 
            datatype: 'json',
            mtype: 'POST',

            colNames: ['ProjNum', 'Status', 'Status Date', 'Status Time', 'User ID', 'Memo Text', 'Memo Number', 'Status Number'],
            colModel: [
                        { name: 'ProjNum', index: 'ProjNum', hidden: true, editable: true, editoptions: { defaultValue: $('#tbxProjNum').val() } },
                        { name: "Status", width: 155,
                            editable: true, edittype: "select",
                            editoptions: {
                                dataUrl: "Handler3.ashx",
                                buildSelect: function (data) {
                                    data = $.parseJSON(data);
                                    var select = '<select>', i, l = data.length, item;
                                    for (i = 0; i < l; i++) {
                                        item = data[i];
                                        //select += '<option value="' + item.value + '">' + item.name + '</option>';
                                        select += '<option>' + item.name + '</option>';
                                    }
                                    return select + '</select>';
                                }
                            } },
                        { name: 'Status Date', index: 'Status Date', width: 90, editrules: { required: true }, editable: true, editoptions: { dataInit: function (elem) { $(elem).datepicker({changeYear: true, changeMonth: true}); } } },
                        { name: 'Status Time', index: 'Status Time', width: 90, editrules: { required: true }, editable: true, editoptions: { dataInit: function (elem) { $(elem).timepicker({ timeFormat: 'HH:mm:ss' }); } } },
                        { name: 'User ID', index: 'User ID', width: 90, editrules: { required: true }, editable: true },
                        { name: 'Memo Text', index: 'Memo Text', hidden: true, editrules: { required: true, edithidden: true }, editable: true, edittype: 'textarea', editoptions: { rows: "10", cols: "30", defaultValue: "" } },
                        { name: 'Memo Number', index: 'Memo Number', editable: true, hidden: true },
                        { name: 'Status Number', index: 'Status Number', editable: true, hidden: true }
            ],
            //loadonce: true,
            scrollOffset:0,
            //autowidth: true,
            height: "260",
            onSelectRow: function (rowId) {
                var grid = $('#statusGrid');
                $('#tbxStsDesc').val(grid.jqGrid('getCell', rowId, 'Memo Text'));
            },
            pager: '#pager',
            rowNum: 10,
            rowList: [10, 20, 30, "10000:All"],
            viewrecords: true,
            gridview: true,
            autoencode: true,
            loadComplete: function () {
                $('#statusGrid').setSelection(1);
                $('#tbxStsDesc').val($('#statusGrid').jqGrid('getCell', 1, 'Memo Text'));
            },
            caption: 'Status Detail',
            editurl: 'Handler4.ashx', 
        });

        jQuery("#statusGrid").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false, search: false, refresh: false });

        //jQuery("#statusGrid").navGrid("#pagingGrid", {
        //    edit: true,
        //    add: true,
        //    del: true,
        //    save: true,
        //    cancel: true,
        //    search: false,
        //    refresh: false
        //},
        //{
        //    closeAfterEdit: true,
        //    reloadAfterSubmit: true
        //},
        //{
        //    closeAfterAdd: true,
        //    reloadAfterSubmit: true
        //},
        //{
        //    onclickSubmit: function (options, delId) {
        //        return {
        //            memNum: $(this).jqGrid('getCell', delId, 'Memo Number'),
        //            stsNum: $(this).jqGrid('getCell', delId, 'Status Number'),
        //            prjNum: $(this).jqGrid('getCell', delId, 'ProjNum')
        //        };
        //    }
        //});

        $("#btnAdd").on("click", function () {
            $("#statusGrid").editGridRow("new"); 
        });

    })

    var grid = jQuery("#statusGrid"),
    ids = grid.jqGrid("getDataIDs");
    if (ids && ids.length > 0)
    grid.jqGrid("setSelection", ids[0]);
$(函数(){
$('#statusGrid').jqGrid({
url:'Handler2.ashx?id='+id.toString(),
数据类型:“json”,
mtype:“POST”,
colNames:['ProjNum','Status','Status Date','Status Time','User ID','Memo Text','Memo Number','Status Number'],
colModel:[
{name:'ProjNum',index:'ProjNum',hidden:true,editable:true,editoptions:{defaultValue:$('tbxProjNum').val()},
{名称:“状态”,宽度:155,
可编辑:true,编辑类型:“选择”,
编辑选项:{
dataUrl:“Handler3.ashx”,
buildSelect:函数(数据){
data=$.parseJSON(数据);
var select='',i,l=data.length,item;
对于(i=0;i0)
jqGrid(“setSelection”,ids[0]);

问题似乎是我使用表单上的asp按钮。无论我尝试了什么属性,单击它都会重新加载页面

用简单的html按钮替换这些按钮解决了问题:

<input type="button" class="button" id="btnAdd" value="Add Status" />

与此相反:

<asp:Button class="button" ID="btnAdd" runat="server" Text="Add Status" />