Adding links to jQgrid and open in new window
我有这个jqgrid定义,我正在尝试在新窗口中打开选定的文档。
我的最终到达网址应为:
1 | http://localhost/XPagesSortableSearchResults.nsf/xPerson.xsp?documentId=9D93E80306A7AA88802572580072717A&action=openDocument |
,我还需要生成这种类型的url:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | http://localhost/XPagesSortableSearchResults.nsf/$$OpenDominoDocument.xsp?documentId=9D93E80306A7AA88802572580072717&action=openDocument $().ready(function(){ jQuery("#list2").jqGrid({ url:'./xGrid7.xsp/peoplejson', datatype:"json", colNames:['InternetAddress','#','Name','OfficeCountry'], colModel:[ {name:'InternetAddress',index:'InternetAddress', width:200}, {name:'@position',index:'@position', width:50,sorttype:'int'}, {name:'$17',index:'$17', width:200}, {name:'OfficeCountry', width:200, formatter:editLinkFmatter // formatter:'showlink', // formatoptions:{ baseLinkUrl:'xPerson.xsp',addParam: '&action=openDocument', idName:'documentId'} } ], jsonReader: { repeatitems: false, id: '@unid', root: function (obj) { if ($.isArray(obj)) { return obj; } if ($.isArray(obj.items)) { return obj.items; } return []; }, page: function () { return 1; }, total: function () { return 1; }, records: function (obj) { if ($.isArray(obj)) { return obj.length; } if ($.isArray(obj.items)) { return obj.items.length; } return 0; } }, caption:"JSON Example", height: 500, gridview: true, loadonce: true, ignoreCase: true, rowNum: 50, rowList: [50, 100, 500, 1000], pager: '#pager2' }).jqGrid('filterToolbar', {stringResult: true, defaultSearch: 'cn', searchOnEnter: false}); |
请注意,我的Json对象看起来像这样,并且我没有在URL上使用我需要的documentId作为ColModel的一部分;我需要的值是@unid
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | [ { "@entryid":"1-B933790B1DC265ED8025725800728CC5", "@unid":"B933790B1DC265ED8025725800728CC5", "@noteid":"1E76E", "@position":"1", "@read":true, "@siblings":40000, "@form":"Person", "$17":"Aaron, Adam", "InternetAddress":"[email protected]", "OfficeCountry":"Namibia" }, { "@entryid":"2-9D93E80306A7AA88802572580072717A", "@unid":"9D93E80306A7AA88802572580072717A", "@noteid":"19376", "@position":"2", "@read":true, "@siblings":40000, "@form":"Person", "$17":"Aaron, Dave", "InternetAddress":"[email protected]", "OfficeCountry":"Brazil" }, { "@entryid":"3-FAFA753960DB587A80257258007287CF", "@unid":"FAFA753960DB587A80257258007287CF", "@noteid":"1D842", "@position":"3", "@read":true, "@siblings":40000, "@form":"Person", "$17":"Aaron, Donnie", "InternetAddress":"[email protected]", "OfficeCountry":"Algeria" } ] |
到目前为止,我可以使用:
1 2 3 4 5 | {name:'OfficeCountry', width:200, formatter:'showlink', formatoptions:{ baseLinkUrl:'xPerson.xsp',addParam: '&action=openDocument', idName:'documentId'} } |
但是我需要在新窗口中打开它
我也尝试使用formatter:editLinkFmatter
1 2 3 4 5 | function editLinkFmatter(cellvalue, options, rowObject) { return"" + cellvalue +""; //return"Click here"; //return"" + cellvalue +""; } |
并且我不能使用rowObject。@ unid,因为节点名称
在我看来,您应该只在
作为自定义格式化程序的替代方法,您可以使用'dynamicLink'格式化程序(请参见答案)。您可以从此处下载
已更新:要评估名称为
1 2 3 4 | function editLinkFmatter(cellvalue, options, rowObject) { return"<a href='?documentId=" + rowObject["@unid"] + "&action=OpenDocument' class='requestlink'>" + cellvalue +""; } |
或更像是
1 2 3 4 5 6 7 | function editLinkFmatter(cellvalue, options, rowObject) { return"<a href='?" + $.param({ documentId: rowObject["@unid"], action: 'OpenDocument' }) +"' class='requestlink'>" + cellvalue +""; } |