Передайте скрытое значение jqGrid при редактировании в ASP.Net MVC

У меня есть jqGrid в ASP.Net 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 либо а) не отображается, либо б) выделен серым цветом. Но передается контроллеру при сохранении.

Как это настроено, эта сетка будет иметь только 1 идентификатор лошади за раз (он будет существовать на странице свойств лошади).

Единственный раз, когда у меня что-то получилось, это когда я сделал его редактируемым, но тогда это открывает для пользователя возможность изменить идентификатор, что не является хорошей идеей.

Итак, есть ли способ установить это значение перед отправкой данных? она существует как переменная на этой странице, если это кому-то поможет (и я проверил, что она не равна нулю).

Спасибо


person taylonr    schedule 22.05.2010    source источник
comment
Какой тип редактирования jqgrid вы используете? Инлайн или формы?   -  person AdmSteck    schedule 22.05.2010


Ответы (1)


В итоге я определил переменную jscript со значением ViewData. Затем использовал это для свойства 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 });
    });
person taylonr    schedule 22.05.2010