jqGrid получает запись по умолчанию со стороны сервера - PullRequest
0 голосов
/ 14 ноября 2011

Я использую jqgrid с MVC.Вот моя разметка:

$("#list").jqGrid({
    url: '/GstRate/GstRateGridData/',
    datatype: 'json',
    mtype: 'POST',
    colNames: ['GstRateLookupId', 'Percentage Rate', 'Start Date', 'End Date', 'CreatedByUserName', 'CreatedDateTime', ''],
    colModel: [
          { name: 'GstRateLookupId', index: 'GstRateLookupId', hidden: true, key: true, editable: true, editrules: { required: false }, editoptions: { defaultValue: '0'} },
          { name: 'PercentageRate', index: 'PercentageRate', editable: true, editrules: { required: true} },
          { name: 'StartDate', index: 'StartDate', width: 400, align: 'center', formatter: 'date', editable: true, editrules: { required: true }, formatoptions: { srcformat: 'd/m/y', newformat: 'd-m-y' }, editoptions: { dataInit: function (element) { $(element).datepicker({ dateFormat: 'd-m-y' }) } } },
          { name: 'EndDate', index: 'EndDate', width: 400, align: 'center', editable: true, formatter: 'date', formatoptions: { srcformat: 'd/m/y', newformat: 'd-m-y' }, editoptions: { dataInit: function (element) { $(element).datepicker({ dateFormat: 'd-m-y' }) } } },
          { name: 'CreatedByUserName', index: 'CreatedByUserName', hidden: true, editable: true, editrules: { required: false} },
          { name: 'CreatedDateTime', index: 'CreatedDateTime', hidden: true, editable: true, editrules: { required: false} },
          { name: 'act', index: 'act', width: 55, align: 'center', sortable: false, formatter: 'actions', formatoptions: { keys: true, delbutton: false} }
          ],
    pager: $('#pager'),
    rowNum: 10,
    rowList: [5, 10, 20, 50],
    viewrecords: true,
    imgpath: '',
    caption: 'Gst Rates',
    editurl: '/GstRate/SaveGstRate/'
});
$("#list").navGrid('#pager', { edit: false, add: true, del: true, search: false }, {}, {}, { url: "/../GstRate/DeleteGstRate" });

Это работает нормально, но я хочу улучшить его, чтобы при добавлении новой записи значение начальной даты было доступно только для чтения и по умолчанию использовалось значение даты окончания последней записибаза данных.

Единственный способ, которым я могу думать об этом, - это каким-то образом вызвать метод на стороне сервера для заполнения даты начала во всплывающем диалоговом окне создания нового.значение dataUrl в editoptions, чтобы сделать это, но этот dataUrl, кажется, работает только при заполнении списка выбора.Я не хочу, чтобы список выбора был только текстовым полем только для чтения.

Кто-нибудь знает, как этого добиться?

1 Ответ

0 голосов
/ 14 ноября 2011

Я вижу два разных способа решения:

  1. Вы используете beforeShowForm для обратного вызова, задайте поле ввода 'StartDate', чтобы только для чтения, а затем отправьте запрос на сервер вручную для $.ajax,Внутри success обратного вызова запросов вы можете установить данные в поле ввода 'StartDate', полученного с сервера.
  2. Если вы заполняете сетку, вы используете userdata для сохранения дополнительной информации в сетке.,Внутри dataInit StartDate вы получаете необходимые данные из внутреннего параметра userData и инициализируете поле ввода.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...