【问题标题】:jqgrid:how to set edit option false for a particular column and update its vlauejqgrid:如何为特定列设置编辑选项 false 并更新其值
【发布时间】:2012-12-06 07:20:12
【问题描述】:

我有一个内联编辑工作正常的 jqgrid,我的要求是我想禁用 studentId 的编辑选项,我为那个 studentId 列声明了可编辑:false,但是当我点击保存按钮时,我得到了错误.. .'参数字典包含方法.....'的不可为空类型'System.Int32'的参数'StudentId'的空条目'

我的 jquery

    <script type="text/javascript">
    $(function () {
        var lastsel;

        jQuery("#list").jqGrid({
            url: '/Home/GetStudents/',
            datatype: 'json',

            mtype: 'POST',
            colNames: ['StudentID', 'FirstName', 'LastName', 'Email', 'Actions', ],

            colModel: [
      { name: 'StudentID', sortable: false, key: true,editable:false },
      { name: 'FirstName', key: true },
      { name: 'LastName', sortable: false, key: true },
      { name: 'Email', width: 200, sortable: false, key: true },
      { name: 'act', index: 'act', width: 75, sortable: false, editable: false}],
            cmTemplate: { align: 'center', editable: true },
            pager: '#pager',
            width: 750,
            rowNum: 15,
            rowList: [5, 10, 20, 50],
            sortname: 'StudentID',
            sortorder: "asc",
            viewrecords: true,
            caption: ' My First JQgrid',
            gridview: true,
            width: 850,



            gridComplete: function () {
                var ids = jQuery("#list").jqGrid('getDataIDs');

                for (var i = 0; i < ids.length; i++) {
                    var cl = ids[i];

                    be = "<input style='height:22px;width:20px;' type='button' value='E' onclick=\"jQuery('#list').editRow('" + cl + "');\"  />";
                    se = "<input style='height:22px;width:20px;' type='button' value='S' onclick=\"jQuery('#list').saveRow('" + cl + "');\"  />";
                    ce = "<input style='height:22px;width:20px;' type='button' value='C' onclick=\"jQuery('#list').restoreRow('" + cl + "');\" />";
                    jQuery("#list").jqGrid('setRowData', ids[i], { act: be + se + ce });
                }
            },

【问题讨论】:

    标签: jquery asp.net-mvc jqgrid


    【解决方案1】:

    目前还不清楚哪些信息在等待您的服务器部分。你可以尝试使用

    prmNames: {id: "StudentID"}
    

    它将当前发送到服务器的id参数重命名为StudentID

    【讨论】:

    • thnku,它工作得很好,但你能告诉我那行是做什么的吗,我无法理解后台进程..现在我想编辑:false 到 firstName 列,当我保存时,空值正在传递给数据库,如何解决这个问题
    • @colorsbright:jqGrid 在编辑请求中以id=123 的形式发送rowid,其中123 是rowid。所以它使用"id" 作为参数rowid 的默认name。使用prmNames,您可以重命名任何将发送到服务器的参数。在您使用prmNames: {id: "StudentID"} 时,id=123 将在 POST 请求中更改为 StudentID=123。以同样的方式,您可以重命名 any 将由 jqGrid 发送到服务器的其他参数。
    • 好的,当我将 FirstName 列设置为不可编辑时,我需要如何传递 FirstName,..prmNames: {?: "FirstName"}
    • @colorsbright:首先您应该将key: true从其他列中删除为StudentID(请阅读我对您上一个问题的回答)。我可以解释如何发送FirstName,但我认为这毫无意义。所有需要的信息已经在服务器上。你只需要使用StudentID。我想你有一些问题在服务器部分。你如何访问服务器端的数据库?
    • 是的,你 100% 正确,对不起我的跛脚......实际上我的问题是空值被传递并在我的数据库中为 firstName 列更新,所以我需要在我的程序.....只是出于好奇,我想问一下,即使在使其不可编辑后,v 也可以传递 firstName 值
    猜你喜欢
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多