You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC环境下jQGrid编辑/添加窗口空白问题咨询

jQGrid编辑/添加窗口仅显示按钮问题排查与修复

核心问题分析

  • 表格ID不匹配:初始化代码用$('#StudentGrid')绑定表格,但HTML里的表格ID是StudentId,导致jQGrid无法将列模型关联到编辑表单。
  • 列模型缺少可编辑属性:colModel中所有字段都没设置editable: true,jQGrid默认editable为false,因此编辑窗口不会渲染这些字段的输入控件。
  • 选择器语法错误:多处代码使用$("studentId")这种错误写法,正确的ID选择器需要加#前缀(如$("#studentId")),虽不直接导致表单不显示,但会引发数据读写失败。

修复代码示例

1. 修正HTML表格ID

<table style="width:90%;margin:5px;">
    <tr style="vertical-align:top;">
        <td>
            <div style="margin-top:5px;"></div>
            <div class="textborder">
                <span>Student Database</span>
            </div>
            <!-- 修正ID与初始化代码匹配 -->
            <table id="StudentGrid"></table>
            <div id="pager"></div>
        </td>
    </tr>
</table>

2. 为colModel添加可编辑属性

colModel: [
    {
        name: 'studentId',
        index: 'studentId',
        editoptions: { readonly: 'readonly' },
        width: 25,
        hidden: false,
        sortable: false,
        editable: true // 新增可编辑属性
    },
    {
        name: 'name',
        index: 'name',
        editoptions: { size: 25, maxlength: 20 },
        hidden: false,
        sortable: true,
        width: 25,
        align: "center",
        editable: true // 新增可编辑属性
    },
    {
        name: 'grade',
        index: 'grade',
        hidden: false,
        sortable: true,
        width: 25,
        align: "center",
        editable: true // 新增可编辑属性
    }
],

3. 修正选择器错误

// 初始化代码中的postData
postData: {
    StudentId: $("#studentId").val(), // 添加#前缀
    Name: $("#name").val(),
    Grade: $("#grade").val()
},

// updateRow函数中的editData
editData: {            
    StudentId: $("#studentId").val(), // 添加#前缀
    Name: $("#name").val(),
    Grade: $("#grade").val()
},

4. 优化表单元素选择器

jQGrid生成的表单元素ID格式为id_g_字段名,修正readonly设置的选择器:

beforeShowForm: function (form) {
    if (id == 'new') {
        $('#id_g_studentId').removeAttr('readonly');
    }          
},
afterComplete: function (response, postdata, formid) {
    $('#id_g_studentId').attr('readonly', 'readonly');
    $("#StudentGrid").jqGrid("setGridParam", { datatype: "json" }).trigger("reloadGrid");
    checkForError('An error occured trying to save Student record.', response, null, null, formid);
},

内容的提问来源于stack exchange,提问作者Eric Liang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:41:11