Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQGrid数据不';t在第二次或后续单击事件中重新加载…(在第一次单击getdata按钮时加载)_Javascript_Jquery_Jqgrid_Jqgrid Asp.net - Fatal编程技术网

Javascript JQGrid数据不';t在第二次或后续单击事件中重新加载…(在第一次单击getdata按钮时加载)

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 =

根据从下拉列表中选择的LogID,我使用JQGrid来显示数据库中的一些数据列表。 它在第一次单击时正确显示内容。 但是,在所有后续的单击操作中,不会发生任何事情,页面不会更改、重新加载或执行任何操作,但是如果我尝试调试脚本,我可以看到每次单击按钮时都会触发button click事件,但它仍然不会从db中带回更改的LogID数据。我不确定,但我认为这与重新加载网格触发器有关

  <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