在JQGrid中创建链接

时间:2014-02-13 11:47:03

标签: javascript jquery jqgrid

我需要在我的JQgrid中创建一个列的所有单元格,这个链接调用带有单元格值的javascript函数,以便在服务器端传递一些查询。我看过html link column in jqGrid 但它没有成功。这就是我所拥有的,

colModel:[
{name:'name',width:300,formatter:link}
]

,链接功能

function link(cellvalue, options, rowObject) {


alert('<a href="javascript:logForProv(\''+cellvalue+'\',\''+$('#datepicker1').val()+'\',\''+$('#datepicker2').val()+'\');">');
return "<a href='javascript:logForProv(\''+cellvalue+'\',\''+$('#datepicker1').val()+'\',\''+$('#datepicker2').val()+'\');'>";
        }

执行此操作我没有在列中获取任何数据,我也尝试使用预定义的格式化程序链接和showlink,但是他们将href和id附加到正在搞乱的URL。

请帮助。

2 个答案:

答案 0 :(得分:2)

点击providerId修改列后,您将重定向到editProvider的编辑页面。 在formatter: editLink colModel上提及providerId来调用editLink函数。这样就可以在jqGrid中创建链接。

<强>代码:

$(document).ready(function(){
        //jqGrid
        $("#providerList").jqGrid({
            url:'<%=request.getContextPath() %>/Admin/getProvidersList',
            datatype: "json",               
            colNames:['Id','Edit','Provider Name'],
            colModel:[
                {name:'providerId',search:false,index:'providerId',hidden:true},
                {name:'providerId',search:false,index:'providerId', width:30,sortable: false, formatter: editLink},
                {name:'providerName',index:'providerName', width:200},
                rowNum:20,
                rowList:[10,20,30,40,50],
                rownumbers: true,  
                pager: '#pagerDiv',
                sortname: 'providerName',  
                viewrecords: true,  
                sortorder: "desc",  
        }); 
        $('#gridContainer div:not(.ui-jqgrid-titlebar)').width("100%");
        $('.ui-jqgrid-bdiv').css('height', window.innerHeight * .65);
        $('#load_providerList').width("130");   
        $("#providerList").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/editProvider/" + rowdata.providerId + "' class='ui-icon ui-icon-pencil' ></a>";
    }

答案 1 :(得分:0)

必须在全局(顶级)上定义函数logForProv

我建议您尝试更好formatter: "dynamicLink",我将其描述为here,您可以从herejQuery.jqGrid.dynamicLink.js文件)下载。它允许以非常简单和灵活的方式在jqGrid中构建链接。您可以在onClick内定义formatoptions回调(请参阅the demo)。回调提供rowIdiRowiColcellValuee作为参数。