主网格代码在
之下$(document).ready(function () {
jQuery("#list5").jqGrid({
url: 'server.php?mode=getBaseList',
datatype: "json",
colNames: ['Inv No', 'Date', 'Client', 'Amount', 'Tax', 'Total', 'Notes'],
colModel: [{
name: 'id',
index: 'id',
width: 55
}, {
name: 'invdate',
index: 'invdate',
width: 90
}, {
name: 'name',
index: 'name',
width: 100
}, {
name: 'amount',
index: 'amount',
width: 80,
align: "right"
}, {
name: 'tax',
index: 'tax',
width: 80,
align: "right"
}, {
name: 'total',
index: 'total',
width: 80,
align: "right"
}, {
name: 'note',
index: 'note',
width: 150,
sortable: false
}],
rowNum: 10,
jsonReader{
id:'id',repeatitems:false
},
rowList: [10, 20, 30],
pager: '#pager5',
sortname: 'name',
autoencode: true,
loadonce:true,
sortable: true,
viewrecords: true,
sortorder: "desc",
multiselect: false,
subGrid: true,
subGridRowExpanded: function(subgrid_id, row_id) {
var newID = $('#list5').getCell(row_id, 'id');
var escapeID=escape(newID);
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id+"_t";
pager_id = "p_"+subgrid_table_id;
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
url:"/portal/getSubGridData?id="+escapeID,
datatype: "json",
colNames: ['No','Item','Qty','Unit','Line Total'],
colModel: [
{name:"num",index:"num",width:80,key:true},
{name:"item",index:"item",width:130}
],
rowNum:20,
pager: pager_id,
sortname: 'num',
sortorder: "asc",
height: '100%'
});
jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false}) }
caption: "Simple data manipulation"
}).navGrid("#pager5", {
edit: false,
add: false,
del: false
});
});
jQuery("#list5").jqGrid('filterToolbar',{searchOperators : true});
如何传递带空格参数值的URI?我观察到JS中的'%20'或'_'被取消了。我该怎么办?
我试过了: 第1步:使用ID
id=10054898 104143018
var modifiedUrl=escape(id);
以下新网址
我的网址在
之下newUrl=/portal/getSubGridData?id=10054898%20104143018
第2步:使用名称
name=John Williams
var modifiedUrl=escape(name);
以下新网址
我的网址是
newUrl=/portal/getSubGridData?name=John%20Williams
以上网址没有发布到服务器端,我检查了萤火虫。网址未提交。
答案 0 :(得分:0)
我想你使用Subgrid as Grid并使用像
这样的代码创建子网格subGridRowExpanded: function(subgridId, rowId) {
var id = $.jgrid.stripPref(this.p.idPrefix, rowId);
...
$subgrid.jqGrid({
url: "/portal/getSubGridData?id=" + id,
});
...
}
您应从不添加常用字符串值作为网址的一部分。而不应该使用标准JavaScript方法encodeURIComponent
url: "/portal/getSubGridData?id=" + encodeURIComponent(id),
或jQuery.param方法
url: "/portal/getSubGridData?" + $.param({id: id}),
更容易使用
url: "/portal/getSubGridData",
postData: {
id: id
}
如果id将被添加到将发送到服务器的其他参数,我希望您在服务器端获取和分析。如果使用HTTP GET,则使用PHP中的$_GET
访问参数。如果您使用mtype: "POST"
,则可以使用$_POST
访问参数(类似于$_POST["id"]
)。我不是PHP开发人员,但我不明白为什么可以将一些参数附加到URL并使用标准方式发布另一个参数:在HTTP POST请求体内。
最后一句话:我严格建议您不要在id
中使用空格。取决于您使用的HTML版本可以禁止。我建议你最好使用下划线而不是空格。