0

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

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

这是现有的代码。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});
}
4

1 回答 1

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
                            }"
于 2013-11-11T05:22:08.500 回答