0

我正在尝试创建一个依赖下拉框。“元素”依赖于“分组”。

我的 ajaxSelectOptions 函数似乎可以工作,因为传递了“temp”,但是“populate_element”没有使用它。如何使用'temp'作为我的参数:id?

我的网格:

jQuery(document).ready(function(){
var lastsel;
var grid = jQuery("#list").jqGrid({

url:'codes/get_data.xml',
datatype: 'xml',
mtype: 'GET',
colNames:['ID', 'Version', 'Grouping', 'Element', 'Name'],
colModel:[
    {name: 'id', index: 'id', hidden: true, editable: false },
    {name: 'version', index: 'version',editable: true, editrules:{number:true}, cellEdit: true, search:true },
    {name: 'grouping', index: 'grouping', editable: true, edittype: 'select', editoptions: {dataUrl: 'codes/populate_grouping.html'} },
    {name: 'element', index: 'element', editable: true, edittype: 'select' }
],
pager: '#pager',
rowNum:200,
rowList:[50,100,200],
sortname: 'id',
sortorder: 'asc',
viewrecords: true, 
height: 500,
scrollrows: true,
rownumbers: false,
caption: 'GL Codes',
editurl: 'codes/post_data.xml',

onSelectRow: function(id){
    $("#list").setColProp('element', {editoptions: { dataUrl: 'codes/populate_element.html' }});

    if(id && id!==lastsel){
        $('#list').restoreRow(lastsel);         
       lastsel=id;
    }
    $('#list').editRow(id,true);        
},
ajaxSelectOptions: {
      data: {
        temp: function(temp){
          return grid.jqGrid('getGridParam', 'selrow')
        } 
      }
    }

});

这是我的错误信息:

Started GET "/codes/populate_element.html?temp=4" for 127.0.0.1 at 2012-09-27 17:18:33 +1200
Processing by CodesController#populate_element as HTML
  Parameters: {"temp"=>"4"}
Completed 500 Internal Server Error in 1ms

ActiveRecord::RecordNotFound (Couldn't find Code without an ID):
app/controllers/codes_controller.rb:73:in `populate_element' 

更新 我确定它实际上只是调用参数时的 ruby​​ 语法错误,而不是 jqGrid 问题。作为参考,我最终这样称呼它... @code = Code.where(["id = ?",params[:temp]]).first

4

1 回答 1

0

我认为问题在于您对网格行使用了错误的 ID。在填充网格期间存在错误。解决此问题的最简单方法是将key: true属性添加'id'colModel. 在这种情况下,列中的值id将用作 rowid:网格id的行 () 的属性值。<tr>

于 2012-09-27T05:48:18.170 回答