javascript - 在 JQGrid 的 showlink 格式化程序中添加动态参数

标签 javascript jquery jqgrid jqgrid-formatter

我正在使用 JQGrid 的 showlink 格式化程序。 为此,我的 colModel 是

[
{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

但我希望单位的值(value)应该取决于那一行,

这里是 Example我创造了。

我使用的替代方法是编写自定义包装函数。但我想使用默认的“showlink”格式化程序。 请帮忙。

最佳答案

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

columnIndex userId 是第一个参数,columnIndex isActive 是第二个参数,使用 rowdata.userIdrowdata.isActive 获取这些值editLink 函数中。这两个值使用 & 分隔。

使用 jqgrid 在 URL 中传递 两个参数

代码:

$(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>";
        }

关于javascript - 在 JQGrid 的 showlink 格式化程序中添加动态参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11465060/

相关文章:

javascript - 带有 promise 的 Protractor 变量范围

javascript - 我似乎无法将我的 vimeo iframe 静音

php - 如何使用 CSS 和 jQuery 创建带有 span 或 ul li 的简单星级评分?

javascript - 如何在 VueJs 对象迭代中有条件地应用 CSS 类?

javascript - jQuery jqGrid 中的事件之前排序

javascript - 使用单个条目文件来 react native 应用程序

javascript - 使用 onClick 事件扩展 Aviarc 容器小部件

jquery - 在滚动时将 div 粘贴到父 div 的顶部

javascript - 使用操作进行 jqgrid 内联编辑 - 无法显示错误消息

javascript - jqGrid模式编辑仅保存更改的数据和标记编辑的行?