2010-05-22 48 views
0

我在ASP.Net MVC中有一个jqGrid。在ASP.Net上编辑时传递一个隐藏的jqGrid值MVC

电网被定义为:

$("#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或者是)不显示或b)显示为灰色。但保存时传递给控制器​​。

它的成立方式是这样的电网将只有1个马身份证在同一时间(会存在马的属性页上。)

我已经得到了什么工作,唯一的一次是当我做它是可编辑的,但是然后打开它以供用户修改ID,这不是一个好主意。

那么有什么方法可以在提交数据之前设置此值?它确实存在作为一个变量在这个页面上,如果这有助于任何(我已检查它不是null)。

谢谢

+0

其中的jqGrid的编辑类型是您使用?内联还是表单? – AdmSteck 2010-05-22 11:03:55

+0

我正在使用表单 – taylonr 2010-05-22 13:32:00

回答

1

我最终定义了一个带有ViewData值的jscript变量。然后将其用于编辑选项: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 }); 
    });