Javascript JQGrid数据不';t在第二次或后续单击事件中重新加载…(在第一次单击getdata按钮时加载)
根据从下拉列表中选择的LogID,我使用JQGrid来显示数据库中的一些数据列表。 它在第一次单击时正确显示内容。 但是,在所有后续的单击操作中,不会发生任何事情,页面不会更改、重新加载或执行任何操作,但是如果我尝试调试脚本,我可以看到每次单击按钮时都会触发button click事件,但它仍然不会从db中带回更改的LogID数据。我不确定,但我认为这与重新加载网格触发器有关Javascript JQGrid数据不';t在第二次或后续单击事件中重新加载…(在第一次单击getdata按钮时加载),javascript,jquery,jqgrid,jqgrid-asp.net,Javascript,Jquery,Jqgrid,Jqgrid Asp.net,根据从下拉列表中选择的LogID,我使用JQGrid来显示数据库中的一些数据列表。 它在第一次单击时正确显示内容。 但是,在所有后续的单击操作中,不会发生任何事情,页面不会更改、重新加载或执行任何操作,但是如果我尝试调试脚本,我可以看到每次单击按钮时都会触发button click事件,但它仍然不会从db中带回更改的LogID数据。我不确定,但我认为这与重新加载网格触发器有关 <script type="text/javascript"> var firstClick =
<script type="text/javascript">
var firstClick = true;
$(document).ready(function () {
$('.editor-date > input').datepicker();
$('.getdata').click(function () {
if (!firstClick) {
$("#GridTable").trigger("reloadGrid");
}
firstClick = false;
$('#GridTable').jqGrid({
url: '<%= Url.Action("GetData", "Report") %>',
datatype: 'json',
mtype: 'POST',
colNames: ['Log ID'],
colModel: [{ name: 'LogID', index: 'MessageLogID', key: true, formatter: pointercursor }],
multiselect: true,
sortname: 'LogID',
sortorder: "asc",
viewrecords: true,
pager: $('#pager'),
rowNum: 20,
rowList: [5, 10, 20, 50],
postData: {
IdParam: $('#testLogID').val()
},
jsonReader: {
repeatitems: false,
id: 'LogID',
records: 'TotalRecords',
total: 'TotalPages',
page: 'CurrentPage',
root: 'Rows'
},
loadError: function (xhr, status, error) {
messageBox('Error', 'Error occurred loading data.');
},
height: 'auto',
width: 'auto'
});
});
var firstClick=true;
$(文档).ready(函数(){
$('.editor date>input').datepicker();
$('.getdata')。单击(函数(){
如果(!firstClick){
$(“#网格表”).trigger(“重载网格”);
}
firstClick=false;
$('#GridTable').jqGrid({
url:“”,
数据类型:“json”,
mtype:“POST”,
colNames:['Log ID'],
colModel:[{name:'LogID',index:'MessageLogID',key:true,formatter:pointercursor}],
多选:对,
sortname:'LogID',
分拣员:“asc”,
viewrecords:是的,
寻呼机:$(“#寻呼机”),
rowNum:20,
行列表:[5,10,20,50],
postData:{
IdParam:$('#testLogID').val()
},
jsonReader:{
重复项:false,
id:'LogID',
记录:“TotalRecords”,
总计:'TotalPages',
页面:“当前页面”,
根:“行”
},
loadError:函数(xhr、状态、错误){
messageBox('错误','加载数据时出错');
},
高度:“自动”,
宽度:“自动”
});
});
我发现了一个类似的问题,但解决方案不起作用我认为您应该改变
postData: {
IdParam: $('#testLogID').val()
}
到
(有关更多信息,请参阅)
当前代码保存$('#testLogID').val()的值
在第一次调用时创建了网格。以后的调用使用相同的旧值。postData
中的函数/方法的使用在每次重新加载网格时调用函数之后。它将间接完成:jqGrid use$。ajax
使用$。param
使用使用函数postData.IdParam
此外,我建议您添加
gridview:true
选项,并将pager:$(“#pager”)
更改为pager:“#pager”
并将行var firstClick=true;
移到函数$(document)的内部。ready(函数(){…};
。此外,我还错过了}如果(!firstClick){
。重要的是要理解应该使用$(“#GridTable”).jqGrid({…})
创建一次网格,然后只使用$(“#GridTable”)。触发器(“重载网格”);
。我认为您应该更改
postData: {
IdParam: $('#testLogID').val()
}
到
(有关更多信息,请参阅)
当前代码保存$('#testLogID').val()的值
在第一次调用时创建了网格。以后的调用使用相同的旧值。postData
中的函数/方法的使用在每次重新加载网格时调用函数之后。它将间接完成:jqGrid use$。ajax
使用$。param
使用使用函数postData.IdParam
此外,我建议您添加
gridview:true
选项,并将pager:$(“#pager”)
更改为pager:“#pager”
并将行var firstClick=true;
移到函数$(document)的内部。ready(函数(){…};
。此外,我还错过了}如果(!firstClick){
。重要的是要理解,一个人应该使用$(“#GridTable')创建一次网格。jqGrid({…})
并且只使用$(“#GridTable”)。触发器(“reloadGrid”);
稍后插入并刷新jqGrid,请参阅我的代码
$(“#Tab1”)。单击(函数(){
var gridArrayData=[];
var id=jQuery(“#jqGrid”).jqGrid('getGridParam','selarrrow');
var totalRowsCount=ids.length;
如果(TotalRowScont>0)
{
$.ajax({
类型:“POST”,
url:'Operaciones\u Grilla.php?Op=30'+'&Filtro='+ids+'&page=1&rows=10',
数据类型:“json”,
成功:功能(数据){
$(“#jqGrid2”)[0]。grid.beginReq();
var data=data.rows;
var ii=0;
用于(数据中的var i)
{
gridArrayData.push({
id:data[i].id,
sistema:data[i].des_sistema,
opcion:数据[i].信息系统,
id_sistema:data[i].id_sistema,
id_opcion:data[i].id
});
}//cierra el适用于每个
jQuery('#jqGrid2').jqGrid('clearGridData'))
.jqGrid('setGridParam',{data:gridArrayData})
.触发器(“重新加载网格”);
$(“#jqGrid2”)[0].grid.endReq();
$(“#jqGrid2”).trigger('reloadGrid');
}
});
$('#tabs a[href=“#tabs-2”]”)。触发器('click');
}否则{
警报(“debe escoger un registro”);
}//注册数字
});
//***************PHP代码************************//
Operaciones_Grilla.php?Op=30调用此函数:
公共功能子单元数据网格性能22($page、$rows、$filtero)
{
$respue