2012-07-13 28 views
4

我正在使用JQGrid的格式器showlink。 这个我colModel是在JQGrid的showlink格式器中添加动态参数

[ 
{name:'id',index:'id',hidden:true}, 
{name:'unit',index:'unit',sorttype:"string"}, 
{name:'supplierName',index:'supplierName',sorttype:"string",formatter:'showlink',formatoptions:{baseLinkUrl:'supplierCommodityDetail',addParam: '&unit='+unit}} 
]; 

我要让有这将是我的jqGrid的数据的第二部分的请求参数链接:

http://localhost:7654/kiss/portal/yoadmintool/supplierCommodity/supplierCommodityDetail?id=48803&unit=Unit1 

,但我得到的错误

Uncaught ReferenceError: unit is not defined 

但如果我改变为

[ 
    {name:'id',index:'id',hidden:true}, 
    {name:'unit',index:'unit',sorttype:"string"}, 
    {name:'supplierName',index:'supplierName',sorttype:"string",formatter:'showlink',formatoptions:{baseLinkUrl:'supplierCommodityDetail',addParam: '&unit=abc'}} 
    ]; 

我收到网址

http://localhost:7654/kiss/portal/yoadmintool/supplierCommodity/supplierCommodityDetail?id=48803&unit=abc 

,但我想应视该行单元的值,

这里是Example我创建。

我使用的另一种方法是编写自定义包装功能。但我想使用默认的“showlink”格式化程序。 请帮忙。

+0

我不知道你是否能得到另一列的值。为什么不使用自定义格式化程序? – RRK 2013-06-11 17:11:46

回答

2

colModel Userid列中提到formatter: editLink为获得userIdisActive值,这里editLink是一个函数。

columnIndex userId是第一参数,columnIndex isActive是第二参数,在editLink功能使用rowdata.userIdrowdata.isActive得到这些值。这两个值使用&分开。使用jqgrid在URL中传递two parameters

代码:

$(document).ready(function(){ 
      //jqGrid 
      $("#usersList").jqGrid({ 
       url:'<%=request.getContextPath() %>/Admin/getAllUsersList', 
       datatype: "json",    
       colNames:['Edit','Primary Email','Active','First Name','Middle Name','LastName','Mobile Number'], 
       colModel:[ 
        {name:'userId',search:false,index:'userId',width:30,sortable: false,formatter: editLink},      
        {name:'email',index:'user.primaryEmail',width:150}, 
        {name:'isActive',index:'user.isActive',width:80}, 
        {name:'firstName',index:'firstName', width:100}, 
        {name:'middleName',index:'middleName', width:100}, 
        {name:'lastName',index:'lastName', width:100}, 
        {name:'mobileNo',index:'user.mobileNo', width:100}, 
        ], 
        rowNum:20, 
        rowList:[10,20,30,40,50], 
        rownumbers: true, 
        pager: '#pagerDiv', 
        sortname: 'user.primaryEmail', 
        viewrecords: true, 
        sortorder: "asc", 
        autowidth:'true', 
      }); 
      $('#gridContainer div:not(.ui-jqgrid-titlebar)').width("100%"); 
      $('.ui-jqgrid-bdiv').css('height', window.innerHeight * .65); 
      $('#load_usersList').width("130"); 
      $("#usersList").jqGrid('navGrid','#pagerDiv',{edit:false,add:false,del:false},{},{},{}, {closeAfterSearch:true}); 
      $(".inline").colorbox({inline:true, width:"20%"}); 
     }); 

     function editLink(cellValue, options, rowdata, action) 
     { 
      return "<a href='<%=request.getContextPath()%>/Admin/editUser/" +rowdata.userId+"&"+rowdata.isActive + "' class='ui-icon ui-icon-pencil' ></a>"; 
     }