【问题标题】:How to add params to jqgrid in Grails Application?如何在 Grails 应用程序中向 jqgrid 添加参数?
【发布时间】:2013-11-08 12:13:28
【问题描述】:

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

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

【问题讨论】:

    标签: jquery grails jqgrid


    【解决方案1】:

    我从我的一个团队会议和朋友 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
                                }"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2023-03-03
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      相关资源
      最近更新 更多