user590586
user590586

Reputation: 3050

jqgrid get values from combobox inside cell

I'm using select type inside a column , when I'm generating the xml from the grid's data , i can't get the value of the select type cell.

This is my code:

{name:'code',index:'code', width:80, sorttype:"int" , editable:true,edittype:"select",
                                         editoptions:
                                         {
                                           value:"1:11 ;2:22" }

and the xml generating is with:

var dataFromGrid = grid.jqGrid ('getRowData');
  var xml = xmlJsonClass.json2xml ({Row: dataFromGrid}, '\t');

I get inside the xml "11" intead of "1".

How can i get the option value?

Thank's In Advance.

Upvotes: 0

Views: 3573

Answers (3)

Chtioui Malek
Chtioui Malek

Reputation: 11515

if you only need the selected ID in the data, you can specify formatter: 'select'

...
{
  name: 'unit', index: 'unit', editable: true, formatter: 'select', edittype: 'select', editrules: { required: true }, editoptions: { value: "1:11 ; 2:22" }
},
...

then retriving the grid data :

var griddata = $('#gridID').getGridParam('data');
alert(JSON.stringify(griddata));

Upvotes: 0

Ivan Milic
Ivan Milic

Reputation: 11

I had to do this in local processing mode:

var rows = jQuery(this).getRowData();
var cols = jQuery(this).jqGrid('getGridParam', 'colModel');
for (var col in cols) {
     if (cols[col].edittype == 'select') {
         var VALs = cols[col].editoptions.value;
         if (typeof (VALs) == "object") {
             for (var row in rows) {
                 for (var v in VALs) {
                     if (rows[row][cols[col].name] == VALs[v]) {
                           rows[row][cols[col].name] = v;
                                break;
                      }
                  }
              }
           }
        }
 }

Upvotes: 1

Oleg
Oleg

Reputation: 221997

If you use datatype:"xmlstring" it will be changed to the "local" datatype after the filling of the grid. So like in case of the datatype:"local" the grid has internal data parameter which represent grid data and not the visualization of the current page of data which you receive with

var dataFromGrid = grid.jqGrid ('getRowData');

So I recommend you to use

var dataFromGrid = grid.jqGrid ('getGridParam', 'data');

to get the data from the grid.

Upvotes: 0

Related Questions