2012-05-29 2 views
0

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

В основном у меня есть книжный стол, например.

id bookref account fare 

1  BR1   101  10.00 

2  BR2   202  20.00 

Мои Jqgrid показывает всю эту информацию, что я хочу сделать, это получить значение bookref, с помощью которого выбирается строка. Текущая функция у меня есть:

ondblClickRow: function(rowid) 
    { 
     var grid = $('#bookings'); 
     var sel_id = grid.jqGrid('getGridParam', 'selrow'); 
     var myCellData = grid.jqGrid('getCell', sel_id, 'bookref'); 

     alert(myCellData); 

    }, 

При двойном щелчке на первую строку я получаю «БР1» вернулся, который является правильным, если я дважды щелкните любую другую строку я все еще получаю «BR1», когда я должен получить «BR2 ', если нажата вторая строка.

Может кто-нибудь, пожалуйста, помогите мне в этом? Неужели массово оценили его

+1

Почему вы используете 'sel_id' вместо использования' rowid' параметра вместо этого? Если бы вы всегда имели одинаковое значение параметра 'rowid', вы должны проверить правильность заполнения сетки данными. В случае, если вы можете включить в свой вопрос более полное определение jqGrid (например, может быть интересно, если вы используете 'multiselect: true') и включаете тестовые данные (по крайней мере, две строки данных). – Oleg

+0

Ну, я был первоначально используя следующий код, но у меня была такая же проблема, – nsilva

+0

ondblClickRow: функция (ROWID) \t \t { \t \t вар ROWDATA = новый Array(); \t \t \t rowData = $ ("# bookings"). GetRowData (rowid); $ (диалог «# cp-bookings-dialog»). ({Hide: 'slide', height: 625, width: 733, title: 'Reference Reference: -' + rowData ['bookref']}); \t \t}, – nsilva

ответ

4

Если вы видите здесь, в моем коде, я также используя ondblClickRow в моей сетке. Если вы видите здесь, я получаю все значения строк и вношу свои собственные изменения, что захочу, и, наконец, загрузив страницу сведений о работе с document.location.href.
Я могу сделать это для всех строк в сетке.

ondblClickRow: function(rowId) { 
    var rowData = jQuery(this).getRowData(rowId); 
    var jobNumber = rowData['jobNumber']; 
    var jobName = rowData['description']; 
    var jobCustomer = rowData['customerName']; 
    var jobStatus = rowData['jobStatus']; 
    jobName = jobName.replace(/&/g, "``"); 
    jobName = jobName.replace(/#/, "__"); 
    var aQryStr = "jobNumber=" + jobNumber + "&jobName=" + jobName + "&jobCustomer=" + jobCustomer; 
    console.log("./jobflow?token=view&" + aQryStr); 
    document.location.href = "./jobflow?token=view&" + aQryStr; 
}, 

Если вы хотите увидеть мой полный код сетки:

$("#jobsGrid").jqGrid({ 
     url:'../job_controller', 
     datatype: 'JSON', 
     mtype: 'POST', 
     pager: jQuery('#jobsGridPager'), 
     colNames:['Job #','Project','City', 'Rep', 'Status', 'Customer', 'Cust PO #', 'Rep. #'], 
     colModel :[ 
      {name:'jobNumber', index:'jobNumber', align:'left', width:50, editable:true,hidden:false, edittype:'text', 
        editoptions:{size:30,readonly:true},editrules:{edithidden:false,required:false}}, 
      {name:'description', index:'description', align:'left', width:150,hidden:false, editable:true, 
        editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}}, 
      {name:'locationCity', index:'locationCity', align:'', width:90,hidden:false, editable:true, 
        editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}}, 
      {name:'initials', index:'initials', align:'center', width:30,hidden:false, editable:true, 
        editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}}, 
      {name:'jobStatus', index:'jobStatus', align:'center', width:60,hidden:false, editable:true, 
        editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}}, 
      {name:'customerName', index:'customerName', align:'', width:150,hidden:false, editable:true, 
        editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}}, 
      {name:'customerPONumber', index:'customerPONumber', align:'center', width:90, hidden:false, editable:true, 
        editoptions:{}, editrules:{edithidden:true,required:false}}, 
      {name:'code', index:'code', align:'center', width:40,hidden:false, editable:true, 
        editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}} 
     ], 
     rowNum: 50, pgbuttons: true,  
     recordtext: '', 
     rowList: [50, 100, 200, 500, 1000], 
     viewrecords: true, 
     pager: '#jobsGridPager', 
     sortname: 'employeeId', sortorder: "asc", imgpath: 'themes/basic/images', caption: 'Jobs', 
     height:547, width: 1140,/*scrollOffset:0,*/ rownumbers:true, altRows: true, altclass:'myAltRowClass', rownumWidth: 45, 
     ondblClickRow: function(rowId) { 
      var rowData = jQuery(this).getRowData(rowId); 
      var jobNumber = rowData['jobNumber']; 
      var jobName = "" + rowData['description']; 
      var jobCustomer = rowData['customerName']; 
      var jobStatus = rowData['jobStatus']; 
      jobName = jobName.replace(/&/g, "``"); 
      jobName = jobName.replace(/#/, "__"); 
      var aQryStr = "jobNumber=" + jobNumber + "&jobName=" + jobName + "&jobCustomer=" + jobCustomer; 
      console.log("./jobflow?token=view&" + aQryStr); 
      document.location.href = "./jobflow?token=view&" + aQryStr; 
     }, 
     jsonReader : { 
      root: "rows", 
      page: "page", 
      total: "total", 
      records: "records", 
      repeatitems: false, 
      cell: "cell", 
      id: "id", 
      userdata: "userdata" 
     } 
    }).navGrid('#jobsGridPager', add:false,edit:false,del:false,refresh:false,search:false} 
    ); 
+0

Чем вы, тем, что я искал! – Houari

1

Нет Использование selrow, но это не строка события, с параллелизмом может не

Проверьте это:

ondblClickRow: function(rowid) 
{ 
    var grid = $('#bookings');  
    var myCellData = grid.jqGrid('getCell', rowid, 'bookref'); 
    alert(myCellData); 
}