如何在jqgrid的基本链接url中添加额外参数

如何在jqgrid的基本链接url中添加额外参数,jqgrid,jqgrid-formatter,Jqgrid,Jqgrid Formatter,我想在jqgrid中添加一个额外的参数。下面的代码不起作用 formatoptions:{baseLinkUrl:'loadHoldCode/id=?', addParam: '&customerId='+$('#custIdHidden').val()}, 但是,如果我硬编码参数值,那么该值将按照我的需要传递 formatoptions:{baseLinkUrl:'loadHoldCode/id=?', addParam: '&customerId="123"}, 请帮

我想在jqgrid中添加一个额外的参数。下面的代码不起作用

 formatoptions:{baseLinkUrl:'loadHoldCode/id=?', addParam: '&customerId='+$('#custIdHidden').val()},
但是,如果我硬编码参数值,那么该值将按照我的需要传递

 formatoptions:{baseLinkUrl:'loadHoldCode/id=?', addParam: '&customerId="123"},
请帮助我,我应该改变什么,或者我应该遵循其他方法

更新: 使用自定义格式化程序,我已经尝试过了,但仍然没有看到任何链接

    name: 'holdCode', 
    width: 100, 
    formatter:function (cellvalue, options, rowObject) {
        return '<a src="loadHoldCode/id=?&customerId=' + rowObject.customerId + '">' +
            cellvalue + "</a>";},                           
    searchoptions:{sopt: ['cn', 'eq', 'ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni']}, 
    sortable: true,
    editable: false
name:'holdCode',
宽度:100,
格式化程序:函数(cellvalue、options、rowObject){
返回“”+
cellvalue+“”;},
搜索选项:{sopt:['cn','eq','ne','lt','le','gt','ge','nu','nn','in','ni']},
可排序:是的,
可编辑:false
我想实现自定义格式化程序的使用,而不是使用
格式化程序
showlink

如果您有一个如下所示的隐藏列,只需自己构造
src

{ name: 'customerId', index: 'customerId', hidden: true },
{ name: 'link', index: 'link', title: false,
    formatter: function (cellvalue, options, rowObject) {
        return '<a href="loadHoldCode/id=?&customerId=' + rowObject.customerId + '" target="_blank">' +
            cellvalue + "</a>";
    }
}
{name:'customerId',index:'customerId',hidden:true},
{name:'link',index:'link',title:false,
格式化程序:函数(cellvalue、options、rowObject){
返回';
}
}

首先,我想弄清楚为什么要使用原始代码

formatoptions: {
    baseLinkUrl: 'loadHoldCode/id=?',
    addParam: '&customerId='+$('#custIdHidden').val()
},
无法正常工作。这意味着对应的
colModel
项的
formatoptions
属性应使用具有两个属性的对象进行初始化
baseLinkUrl
addParam
。在初始化过程中,这两个属性的值将计算一次<代码>$(“#custIdHidden”).val()创建网格时的值

最好像这样使用结构

formatoptions: {
    baseLinkUrl: 'loadHoldCode/id=?',
    addParam: function () {
        return '&customerId=' + $('#custIdHidden').val();
    }
},
但是,只有当jqGrid测试
addParam
的值是否为函数时,它才会工作。格式化程序
“showlink”
不会测试函数选项中的任何内容(请参阅jqGrid代码的部分)。因此**您不能使用
格式化程序:“showlink”
来实现您的需求


我建议您使用(请参阅相应的代码示例,其中
$.param
支持属性作为函数)或使用可下载的
格式化程序:“dynamicLink”
(请参阅
jqGrid.dynamicLink.js
)。这是一个非常简单且非常灵活的格式化程序。您可以查看格式化程序和的更多详细信息和使用示例。

不,我现在根本没有获取超链接。您是否遇到任何Javascript错误?请使用“colModel”代码更新您的帖子。如果rowObject.customerId返回“undefined”,请使用rowObject[columnIndex]取而代之的是从一行的任何列获取数据。更新了我的代码并在标记中使用了href属性。我仍然没有定义Id和CustomerId,我正在检查,感谢先生的更新。我们知道您的整个colModel,包括这个“custIdHidden”。这将是一个非常有用的信息,帮助您解决问题。嗨,Oleg,如果我必须添加的话作为jqgrid行的一部分的参数?是否可能?@user2375298:这是可能的原因,我向您建议了一些实现选项。如果您想使用自定义格式化程序,则实现应与您使用的网格的输入数据相对应。您使用了
$('#custIdHidden')。val()
在原始代码中。它表示您希望在列的所有单元格中放置相同的值。值
rowObject.customerId
表示您在每个输入项中都有
customerId
属性。因此,它表示每行的值不同。此外,如果您使用
rowObject.customerId
而不是
rowObject[12]
或其他语法。它应该在data@user2375298:哪种格式有来自网格的输入数据?能否提供测试数据(至少一行)。如果数据格式与
jsonReader:{repeatitems:true}
xmlReader:{repeatitems:true}的用法相对应
那么语法
rowObject.customerId
将是错误的。您使用的
数据类型是(“json”、“xml”、“local”、…)?您是否使用
loadonce:true
(如果使用
数据类型:“json”
数据类型:“xml”
)是否?您使用的是哪个版本的jqGrid?我使用的是loadonce=true,我使用的是Json数据。我使用的是自定义格式设置程序函数,当我尝试从rowdata访问值时,我没有定义。@user2375298:您使用的是哪个版本的jqGrid?哪个格式有来自网格的输入数据?您可以提供测试数据(至少一行)。
{行“:[[“a”,“b”,123,null,true],…]}
是JSON数据,
[“rows”:[{“customerId”:“a”,“col2”:“b”,“col3”:123,“col4”:null,“col1”:true},…]
也是JSON数据,但是应该以不同的方式读取数据。