如何在Grails应用程序中将params添加到jqgrid?

时间:2013-11-08 12:13:29

标签: jquery grails jqgrid

我必须在第一次加载时向网格添加一些参数值。

我有一个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});
}

1 个答案:

答案 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
                            }"