我正在尝试用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 });
}
答案 0 :(得分:1)
使用默认条件创建网格一次,比如说,在document.ready函数中。然后在搜索功能中使用以下方法重新加载它。
var imurl = "/Home/GetPlayerInformationGrid/?.......
jQuery("#list").jqGrid('setGridParam',{url:imurl,datatype:'json'}).trigger("reloadGrid",[{page:1}]);
答案 1 :(得分:0)
您是否在会话(控制器)中设置了任何值?如果这样做,每次请求完成后都会正确地重置会话值。