我在JSON响应中指定了userdata
。取决于title
属性的值,
title
属性HTML
<table id="myjqgrid"></table>
<div id="Pager"></div>
JSON
{
"colModel": [
{
"name": "ID",
"label": "ID",
"width": 60,
"align": "left",
"jsonmap": "cells.0.value",
"sortable": true
},
{
"name": "FirstName",
"label": "FirstName",
"width": 100,
"align": "left",
"jsonmap": "cells.1.value",
"sortable": false
},
{
"name": "LastName",
"label": "LastName",
"width": 100,
"align": "left",
"jsonmap": "cells.2.value",
"sortable": false
}
],
"colNames": [
"ID",
"FirstName",
"LastName"
],
"mypage": {
"outerwrapper": {
"page":"1",
"total":"1",
"records":"20",
"innerwrapper": {
"rows":[
{
"id":"1",
"cells":
[
{
"value":"12345",
"label": "ID"
},
{
"value":"David",
"label": "FirstName"
},
{
"value":"Smith",
"label": "LastName"
}
]
},
{
"id":"2",
"cells":
[
{
"value":"37546",
"label": "ID"
},
{
"value":"Willy",
"label": "FirstName"
},
{
"value":"Peacock",
"label": "LastName"
}
]
},
{
"id":"3",
"cells":
[
{
"value":"62345",
"label": "ID"
},
{
"value":"Kim",
"label": "FirstName"
},
{
"value":"Holmes",
"label": "LastName"
}
]
},
{
"id":"4",
"cells":
[
{
"value":"186034",
"label": "ID"
},
{
"value":"Andy",
"label": "FirstName"
},
{
"value":"Wills",
"label": "LastName"
}
]
},
{
"id":"5",
"cells":
[
{
"value":"67345",
"label": "ID"
},
{
"value":"Paul",
"label": "FirstName"
},
{
"value":"Lawrence",
"label": "LastName"
}
]
},
{
"id":"6",
"cells":
[
{
"value":"12906",
"label": "ID"
},
{
"value":"Andy",
"label": "FirstName"
},
{
"value":"Charlery",
"label": "LastName"
}
]
},
{
"id":"7",
"cells":
[
{
"value":"564565",
"label": "ID"
},
{
"value":"Bets",
"label": "FirstName"
},
{
"value":"Josilyn",
"label": "LastName"
}
]
}
],
"userdata": {
"title": "My Title 1" // this can be 'My Title 1' or 'My Title 2'
}
}
}
}
}
JQGrid定义
$(document).ready(function () {
$.ajax({
type: "GET",
url: "myjqgrid.json",
data: "",
dataType: "json",
success: function(response){
var columnData = response.mypage.outerwrapper,
columnNames = response.colNames,
columnModel = response.colModel;
$("#myjqgrid").jqGrid({
datatype: 'jsonstring',
datastr: columnData,
colNames: columnNames,
colModel: columnModel,
jsonReader: {
root: "innerwrapper.rows",
userdata: "innerwrapper.userdata",
repeatitems: false
},
gridview: true,
pager: "#Pager",
rowNum: 21,
rowList: [21],
viewrecords: true,
recordpos: 'left',
multiboxonly: true,
multiselect: true,
width: "1406",
height: "auto",
loadonce: true,
toolbar: [true,"top"],
loadComplete: function(){
var userdata = $("#myjqgrid").jqGrid('getGridParam', 'userData');
if (userdata) {
if (userdata.title) {
$("#myjqgrid").jqGrid('setCaption', userdata.title);
}
}
if (userdata.title === "My Title 1") {
$("div#t_myjqgrid").append("Viewing the Records.");
} else if (userdata.title === "My Title 2") {
$("div#t_myjqgrid").append("Editing the Records.");
}
}
});
$("#myjqgrid").jqGrid('navGrid','#Pager', {add:false, edit:false, del:false, position: 'right'});
}
});
});
我的问题是
这是更改div#t_myjqgrid
内容的正确方法吗?或者jqgrid提供我可以使用的属性/方法/事件?
答案 0 :(得分:1)
没有方法可以更改jqGrid的toolbar
选项添加的内容顶部或底部工具栏,但您可以使用setCaption
设置网格标题(标题)。代码的小修改demo使用以下loadComplete
:
loadComplete: function () {
var $this = $(this), userdata = $this.jqGrid('getGridParam', 'userData');
if (userdata && userdata.title) {
$this.jqGrid('setCaption', userdata.title);
}
if (userdata.title === "My Title 1") {
$this.jqGrid('setCaption', "Viewing the Records.");
$('#t_' + $.jgrid.jqID(this.id))
.append('<div style="margin: 0.3em">Viewing the Records.</div>');
} else if (userdata.title === "My Title 2") {
$this.jqGrid('setCaption', "Editing the Records.");
$('#t_' + $.jgrid.jqID(this.id))
.append('<div style="margin: 0.3em">Editing the Records.</div>');
}
}
如果网格的$.jgrid.jqID(this.id)
(在您的情况下为'myjqgrid')包含一些meta-characters,则使用this.id
代替id
会很有帮助。< / p>