0
jQuery(function(){ 
var year        =   jQuery("#historyQuery").val();
var projectCode =   jQuery("#projectCode").val();

  jQuery("#list").jqGrid({
    hidegrid:false,
    height:300,
    pgbuttons:false,
    pginput:false,
    url:'index.php?option=com_projectdetails&view=details&task=ajaxdetails.getProjectDetails&format=xml',
    // editurl:'index.php?option=com_cwmaintain&view=incharge&task=ajaxincharge.editcwmaintain&format=xml',
    datatype: 'xml',
    mtype: 'post',
    colNames:['日期','凭证号','摘要','收入/拨出','支出/拨出','借还款'],
    colModel :[ 
      {name:'N3', index:'N3', width:110,sortable:false,editable:false}, 
      {name:'N4', index:'N4', width:110,sortable:false,editable:true,editrules:{required:true}},
      {name:'N5', index:'N5', width:110,sortable:false,editable:true,editrules:{required:true}},
      {name:'N7', index:'N7', width:110,sortable:false,editable:true,editrules:{required:true}},
      {name:'N6', index:'N6', width:110,sortable:false,editable:true,editrules:{required:true}},
      {name:'N6', index:'N6', width:110,sortable:false,editable:true,editrules:{required:true}},
    ],
    rowNum:20,
    reccount:10,
    viewrecords: true,
    gridview: true,
    pager: '#pager',
    caption: '部门负责人'                // jqgrid标题
  }); 
jQuery("#list").navGrid('#pager',{edit:false,add:false,del:false,search:true,refresh:true}); 
});

我想将名为yearprojectCode的两个参数传递给 的函数getProjectDetails($year,$projectCode),我该怎么做?

4

2 回答 2

1

静态地,您可以使用postData向请求添加参数,例如

jQuery("#list").jqGrid({   
...
postData:{year:year,projectCode:projectCode },

....动态地,您可以使用setGridParam方法并再次使用 postData 作为参数。请参考文档页面

于 2013-04-22T07:35:38.940 回答
1

如果我理解正确,您应该postData向 jqGrid 添加附加选项,在其中定义postDataas 函数的属性:

postData: {
    year: function () { return $("#historyQuery").val(); },
    projectCode: function () { return $("#projectCode").val(); }
}

在这种情况下,来自并且将在对服务器的每个新请求中获取当前值。理解这一点很重要,并且不会因为您使用选项而附加到 URL 。参数将以与参数、、、和相同的方式在请求正文中发送。"#historyQuery"$("#projectCode")yearprojectCodemtype: 'post'pagerowssidxsord_search

有关更多详细信息,请参阅答案

于 2013-04-22T07:40:56.660 回答