JQGrid проблема addrowdata - PullRequest
       7

JQGrid проблема addrowdata

3 голосов
/ 21 апреля 2011

У меня проблема с добавлением новой пустой строки в jqgrid.

Моя колмодель:

colModel: [{ name: 'recid', index: 'testid', hidden: true, editable: true, editrules: { edithidden: true} },
           { name: 'JobTask.Id', index: 'JobTask.Id', hidden: true },
           { name: 'InvolvedParty.Id', index: 'InvolvedParty.Id', hidden: true, editable: true, editrules: { edithidden: true} },
           { name: 'InvolvedParty.Lastname', index: 'InvolvedParty.Lastname', width: 100, align: 'left', editable: true},
           { name: 'deletefield', width: 100, sortable: false, title: false, align: 'center', label: ' '}],

Код, который я использую для вставки строки:

var rowid = jQuery.Guid.New();
var newRowData = [{ "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""}];
$("#grid_id").addRowData(rowid, newRowData);

затем я ввожу некоторые данные и сохраняю строку с

jQuery('#grid_id').saveRow(rowid);

все отлично работает. Теперь, когда я нажимаю на вставку снова, я получаю пустой строка только с одной ячейкой, которая даже не редактируется. Моя недавно вставленная строка должно иметь два поля фамилия и поле delete , содержащее две кнопки (удалить, сохранить).

Есть идеи, почему это происходит?

1 Ответ

2 голосов
/ 21 апреля 2011

попробуй вместо этого

var newRowData = [{ "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""}];

делает:

var newRowData = { "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""};
  • если это не сработает, убедитесь, что добавленные строки наверняка имеют разные идентификаторы

  • вы также можете попробовать перезагрузить компьютер после добавления новой строки на trigger(“reloadGrid”)

надеюсь, что это поможет мне больше не иметь идей

РЕДАКТИРОВАТЬ:

хорошо, я теперь, что случилось

из вики jqgrid:

... Этот метод может вставить несколько строки сразу. В этом случае данные параметр должен быть массивом, определенным как [{имя1: значение1, имя2: значение2…}, {имя1: значение1, имя2: значение2…}] и первый параметр rowid должен содержать имя из объекта данных, который должен действовать как идентификатор строки. Это не необходимо, чтобы имя rowid в этом случае должен быть частью от colModel.

что означает, что вы также можете использовать [] так:

var newRowData = [{ "recid": rowid, "JobTask.Id": "@(Model.id)", "InvolvedParty.Id": "", "InvolvedParty.Lastname": "", "deletefield": ""}];

$("#grid_id").addRowData("recid", newRowData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...