Jqgrid在第二次调用后在querystring中提交错误的参数

时间:2013-09-25 18:49:00

标签: javascript jquery jqgrid

我正在尝试用JQgrid做简单的事情。我有一个带有文本框的页面(名字,姓氏等)。我输入这些文本框的值,然后在按钮单击事件上进行get调用,以从控制器获取数据并在Grid中显示。第一次它工作得很好。但第二次当我在文本框中更改值时,参数的值会根据视图侧的文本框进行更新,但在控制器端,参数的值不会更新。

例如,我第一次传递值作为lastname =“XYZ”工作正常,但当我传递值作为lastname =“BCC”时,它仍然显示XYZ。那是为什么?

以下是我的代码。我做错了什么?

function Search() {
    var fName = $("#txtFName").val();
    var lName = $("#txtLName").val();
    var city = $("#txtCity").val();
    var state = $("#txtState").val();
    var zip = $("#txtZip").val();
    var dob = $("#txtDOB").val();
    var driverLic = $("#txtDrvierLic").val();
    var playerID = $("#txtPlayerID").val();


    var imurl = "/Home/GetPlayerInformationGrid/?fName=" + fName + '&lName=' + lName + '&city=' + city + '&state=' + state + '&zip=' + zip + '&dob=' + dob + '&driverLic=' + driverLic + '&playerID=' + playerID;


    $("#list").jqGrid({
        url:imurl,
        width: 650,
        datatype: 'json',
        mtype: 'GET',
        colNames: ['FirstName', 'PlayerID', 'Date Of Birth', 'State'],
        colModel: [
          { name: 'FirstName', index: 'FirstName', width: 100, align: 'center' },
          {
              name: 'PlayerID', index: 'PlayerID', width: 100, align: 'center', edittype: 'select', formatter: playerFormatter
          },
          { name: 'DOB', index: 'DOB', width: 100, align: 'center' },
          { name: 'State', index: 'State', width: 100, align: 'center' }
        ],
        pager: '#pager',
        rowNum: 10,
        rowList: [10, 20, 30],
        sortname: 'invid',
        sortorder: 'desc',
        viewrecords: true,
        gridview: true,
        height: "auto",
        caption: 'List of Players',
        loadonce: false

    }).trigger("reloadGrid");

    jQuery("#list").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false, refresh:true });

}

2 个答案:

答案 0 :(得分:1)

使用默认条件创建网格一次,比如说,在document.ready函数中。然后在搜索功能中使用以下方法重新加载它。

var imurl = "/Home/GetPlayerInformationGrid/?.......
jQuery("#list").jqGrid('setGridParam',{url:imurl,datatype:'json'}).trigger("reloadGrid",[{page:1}]);

答案 1 :(得分:0)

您是否在会话(控制器)中设置了任何值?如果这样做,每次请求完成后都会正确地重置会话值。