Jqgrid 如何在自定义格式化程序中获取id属性
我的服务器提供以下json字符串:Jqgrid 如何在自定义格式化程序中获取id属性,jqgrid,Jqgrid,我的服务器提供以下json字符串: { "total":3, "page":1, "records":52, "rows":[ {"cell":[ "6789", "Veridien Dynamics", "ver01", "Description of Site: ver01", "1986a594-bb12-4a4a
{
"total":3,
"page":1,
"records":52,
"rows":[
{"cell":[
"6789",
"Veridien Dynamics",
"ver01",
"Description of Site: ver01",
"1986a594-bb12-4a4a-a70b-4b85251fd268",
"UKSODMBHANU01",
6440],
"id":120}
......
]
}
在我的网格中,我希望每一行都有一个链接。链接是使用自定义格式化程序生成的。链接的url需要包含id(例如120)。我无法从自定义格式设置程序中的单元格值
、选项或行对象
获取id值。由于id不是“cell”的一部分,我不知道如何获取这个值来构造url
以下是我的网格定义的一部分:
$("#list").jqGrid({
url:'http://mydomain:8080/myserver/api/v1/data-grid.json',
loadBeforeSend: function(xhr) {
xhr.setRequestHeader("Authorization",'Basic xxxxxxxxxxxxxxxxxxxxxxxxx');
return xhr;
},
datatype: "json",
jsonReader : {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: true,
cell: "cell",
id: "id"
},
colNames:['Customer ID','Customer','Site ID','Site', 'Server ID','Server Name',
'XML Size','id'],
colModel :[
{name:'customerID',editable:false},
{name:'customerName',editable:false},
{name:'siteID',editable:false,width:60, align:'center'},
{name:'siteDescription',editable:false,align:'center'},
{name:'serverID',editable:false,width:150,align:'right'},
{name:'serverName',editable:false, width:150,align:'right'},
{name:'xmlSize',editable:false, align:'right'},
{name:'id', index:'id', editable:false,
align:'center',formatter:that.xmlLinkFormatter},
],
......
}
下面是我的xmlLinkFormatter
,如果我硬编码这里的id值作为targetURL
的一部分,一切都可以正常工作
xmlLinkFormatter:function(cellvalue, options, rowObject){
var targetURL = "http://mydomain:8080/myServer/data/showXml/"+
IwantIDValue here;
var link = "<a href='javascript: void(0)' onclick=\"window.open('" +
targetURL + "');\">View XML</a>";
return link;
}
xmlLinkFormatter:函数(cellvalue、options、rowObject){
var targetURL=”http://mydomain:8080/myServer/data/showXml/"+
我在这里的价值;
var link=“”;
返回链接;
}
我建议您使用来构建链接。因此,自定义格式化程序非常简单:
xmlLinkFormatter:function(cellvalue, options, rowObject){
return "<a href='#'>View XML</a>";
}
(此处变量myGrid
定义为var myGrid=$(“#list”);
)
如何在现场演示中验证该方法的有效性
loadComplete: function() {
var i=getColumnIndexByName(myGrid,'id');
// nth-child need 1-based index so we use (i+1) below
$("tbody > tr.jqgrow > td:nth-child("+(i+1)+") > a",myGrid[0]).click(function(e){
var tr=$(e.target,myGrid[0].rows).closest("tr.jqgrow");
//alert("clicked the row with the id='"+tr[0].id+"'");
e.preventDefault();
window.open("http://mydomain:8080/myServer/data/showXml/"+
encodeURIComponent(tr[0].id));
});
}