0

我在 ASP.Net MVC 中有一个 jqGrid。

网格定义为:

$("#list").jqGrid({
    url: '<%= Url.Action("History", "Farrier", new { id = ViewData["horseId"]}) %>',
            editurl: '/Farrier/Add',
            datatype: 'json',
            mtype: 'GET',
            colNames: ['horseId', 'date', 'notes'],
            colModel: [
          { name: 'horseId', index: 'horseId', width: 250, align: 'left', editable:false, editrules: {edithidden: true}, hidden: true },
          { name: 'date', index: 'farrierDate', width: 250, align: 'left', editable:true },
          { name: 'notes', index: 'farrierNotes', width: 100, align: 'left', editable: true }
          ],
            pager: jQuery('#pager'),
            rowNum: 5,
            rowList: [5, 10, 20, 50],
            sortname: 'farrierDate',
            sortorder: "DESC",
            viewrecords: true
        });

我想要做的是,在网格中添加一行,其中 horseId 要么 a) 不显示,要么 b) 变灰。但是在保存时传递给控制器​​。

它的设置方式是这个网格一次只有 1 个马 id(它将存在于马的属性页面上。)

我唯一可以工作的时间是当我让它可编辑时,但随后它为用户打开它来修改 id,这不是一个好主意。

那么有什么方法可以在提交数据之前设置这个值吗?它确实作为这个页面上的一个变量存在,如果这有帮助的话(我已经检查过它不为空)。

谢谢

4

1 回答 1

1

我最终定义了一个带有 ViewData 值的 jscript 变量。然后将其用于 editoption: defaultvalue 属性。

这是我的脚本:

var defVal = '<%= ViewData["horseId"] %>';
    $(function() {
        $("#list").jqGrid({
            url: '<%= Url.Action("History", "Farrier", new { id = ViewData["horseId"]}) %>',
            editurl: '/Farrier/Add',
            datatype: 'json',
            mtype: 'GET',
            colNames: ['horseId', 'date', 'notes'],
            colModel: [
          { name: 'horseId', index: 'horseId', width: 250, align: 'left', editable: true, editoptions: { defaultValue:defVal}, hidden:true },
          { name: 'date', index: 'farrierDate', width: 100, align: 'left', formatter:'date', datefmt: 'mm/dd/yyyy', editable: true,  editrules: {date:true} },
          { name: 'notes', index: 'farrierNotes', width: 500, align: 'left', editable: true, edittype: 'textarea' }
          ],
            pager: jQuery('#pager'),
            rowNum: 5,
            rowList: [5, 10, 20, 50],
            sortname: 'farrierDate',
            sortorder: "DESC",
            viewrecords: true,
            width: 850
        });
        jQuery("#list").navGrid('#pager', { add: true });
    });
于 2010-05-22T16:01:22.167 回答