我必须在第一次加载时向网格添加一些参数值。
我有一个Grails应用程序。
这是我的jqgrid代码:
$(document).ready(function() {
<jqgrid:grid
id="${TableName}"
onSelectRow="onSelectRow"
onSortCol="onSortColumn"
sortable="true"
multipleSearch="'true'"
multipleGroup="'true'"
url="'${createLink(controller: 'sample', action: 'listAll', params: [ticketId: params.ticketId])}'"
colNames='${pageMap.sample.colNames}'
colModel='${pageMap.sample.colModel}'
resizable="true"
sortname="'id'"
height="'auto'"
autowidth="true"
scrollOffset="16"
viewrecords="true"
forceFit="true"
shrinkToFit="false"
beforeRequest="hideNavSelector"
gridComplete="updateLocationOfNavIcons"
showPager="false"
rowList="20,30,40,50,60,70,80,90,100"
rowNum="${pageMap.sample.recordsToShow }"
loadError ="loadError"
loadonce="'true'"
loadComplete="loadComplete"
beforeProcessing="checkSampleResults"
datatype="'json'">
<jqgrid:navigation id="${TableName}" refresh="true"/>
<jqgrid:resize id="${TableName}" resizeOffset="-2" />
</jqgrid:grid>
});
这是现有代码。但是现在我必须在第一次加载时为params添加更多字段(fromDate, toDate
):
我需要添加的参数是:
var from_year = $('#fromDate_year').val().trim();
var from_month = $('#fromDate_month').val().trim();
var from_day = $('#fromDate_day').val().trim();
var to_year = $('#toDate_year').val().trim();
var to_month = $('#toDate_month').val().trim();
var to_day = $('#toDate_day').val().trim();
我尝试将它们添加到我现有的jqgrid(上面的代码)中:
postData = "{
ticketId:params.ticketId,
from_year:$('#fromDate_year').val().trim(),
from_month:$('#fromDate_month').val().trim(),
from_day:$('#fromDate_day').val().trim(),
to_year:$('#toDate_year').val().trim(),
to_month:$('#toDate_month').val().trim(),
to_day:$('#toDate_day').val().trim()
}"
但它不起作用。
我尝试添加jqgrid的URL属性,但这也无效:
代码是
url="'${createLink(controller: 'sample', action: 'listAll', params: [ticketId: params.ticketId,from_year:$('#fromDate_year').val().trim()])}'"
我写了一个方法,然后添加到我的jqgrid中。它有效,但每次都会调用它。这不是必需的。所以我的网格现有的行为变坏了。
代码是:
在jqgrid中:
beforeRequest="beforeRequest"
在javascript中
function beforeRequest() {
hideNavSelector();
var from_year = $('#fromDate_year').val().trim();
var from_month = $('#fromDate_month').val().trim();
var from_day = $('#fromDate_day').val().trim();
var to_year = $('#toDate_year').val().trim();
var to_month = $('#toDate_month').val().trim();
var to_day = $('#toDate_day').val().trim();
var param_list = {
ticketId:ticketId,
from_year:from_year,
from_month:from_month,
from_day:from_day,
to_year:to_year,
to_month:to_month,
to_day:to_day
};
var grid = $('#${defaultTableName}Grid');
grid.jqGrid("clearGridData", true)
grid.jqGrid('setGridParam',{postData: null});
grid.jqGrid('setGridParam',{datatype:'json',url:'${createLink(controller: 'ticket', action: 'listAllDefaultTable')}',postData:param_list});
}
答案 0 :(得分:0)
我从我的团队见面会和朋友BALA得到了解决方案,感谢BALA
$(document).ready(function() {
disableTicketState();
var from_year = $('#fromDate_year').val().trim();
var from_month = $('#fromDate_month').val().trim();
var from_day = $('#fromDate_day').val().trim();
var to_year = $('#toDate_year').val().trim();
var to_month = $('#toDate_month').val().trim();
var to_day = $('#toDate_day').val().trim();
<jqgrid:grid
id="${TableName}"
url="'${createLink(controller: 'sample', action: 'listAll')}'"
colNames='${pageViewMap.sample.colNames}'
colModel='${pageViewMap.sample.colModel}'
postData= "{
ticketId:${params.ticketId},
from_year:from_year,
from_month:from_month,
from_day:from_day,
to_year:to_year,
to_month:to_month,
to_day:to_day
}"