Цикл статей «Документация jqGrid на русском».
Следующая статья — «Редактирование в форме в jqGrid».
Предыдущая статья — «Метод inlineNav в jqGrid».
Как подготавливаются данные
При переводе строки в режим редактирования элементы ввода создаются в соответствии со следующими правилами:
- В строке таблицы ставится атрибут editable = "1".
- Объект savedRow (свойство таблицы) заполняется значениями, которые были в строке до редактирования. Это пары «имя:значение» с дополнительной парой «id:rowid».
- Скрытые поля не включаются
- Идентификатор id элемента редактирования создаётся как 'rowid_'+name из colModel. Например, если мы редактируем строку с id=10, и единственный элемент, доступный для редактирования 'myname' (из colModel), то id будет равен "10_myname".
- Атрибут name элемента редактирования равен значению name из colModel.
- После сохранения или восстановления строки атрибут editable устанавливается в 0, и savedRow с id=row удаляется.
Что отправляется на сервер
При отправке данных на сервер создаётся объект {}, содержащий следующее:
- Пары «имя:значение», где имя — это name элемента редактирования в строке (это для всех элементов редактирования).
- Дополнительно пара id:rowid, где rowid — id строки.
- Если extraparam не пуст, то его значения добавляются к отправляемым данным.
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
... <head> <script type="text/javascript"> jQuery(document).ready(function(){ var lastsel2 jQuery("#rowed5").jqGrid({ datatype: "local", height: 250, colNames:['ID Number','Name', 'Stock', 'Ship via','Notes'], colModel:[ {name:'id',index:'id', width:90, sorttype:"int", editable: true}, {name:'name',index:'name', width:150,editable: true, editoptions:{size:"20",maxlength:"30"}}, {name:'stock',index:'stock', width:60, editable: true, edittype:"checkbox",editoptions: {value:"Yes:No"}}, {name:'ship',index:'ship', width:90, editable: true, edittype:"select",formatter:'select', editoptions:{value:"FE:FedEx;IN:InTime;TN:TNT;AR:ARAMEX"}}, {name:'note',index:'note', width:200, sortable:false,editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"10"}} ], onSelectRow: function(id){ if(id && id!==lastsel2){ jQuery('#rowed5').restoreRow(lastsel2); jQuery('#rowed5').editRow(id,true); lastsel2=id; } }, editurl: "server.php", caption: "Input Types" }); var mydata2 = [ {id:"12345",name:"Desktop Computer",note:"note",stock:"Yes",ship:"FE"}, {id:"23456",name:"Laptop",note:"Long text ",stock:"Yes",ship:"IN"}, {id:"34567",name:"LCD Monitor",note:"note3",stock:"Yes",ship:"TN"}, {id:"45678",name:"Speakers",note:"note",stock:"No",ship:"AR"}, {id:"56789",name:"Laser Printer",note:"note2",stock:"Yes",ship:"FE"}, {id:"67890",name:"Play Station",note:"note3",stock:"No", ship:"FE"}, {id:"76543",name:"Mobile Telephone",note:"note",stock:"Yes",ship:"AR"}, {id:"87654",name:"Server",note:"note2",stock:"Yes",ship:"TN"}, {id:"98765",name:"Matrix Printer",note:"note3",stock:"No", ship:"FE"} ]; for(var i=0;i<mydata2.length;i++) jQuery("#rowed5").addRowData(mydata2[i].id,mydata2[i]); }); </script> </head> <body> <table id="rowed5" class="scroll"></table> </body> </html> |
Создаст следующее:
Цикл статей «Документация jqGrid на русском».
Следующая статья — «Редактирование в форме в jqGrid».
Предыдущая статья — «Метод inlineNav в jqGrid».
Здравствуйте. А как можно добавить данные с определенных ячеек редактируемой строки в dataurl запрос.
Имеется:
{label: ‘ip4′, name:’ip4′, width:10, editable:true, edittype:»select», editrules: {required: true},editoptions:{dataUrl:’getdata.php?p=’ + id}},
в примере надо добавить id строки в запрос.