Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 dhtmlxGrid筛选器别名和updateFromXML_Javascript_Xml_Dhtmlx - Fatal编程技术网

Javascript dhtmlxGrid筛选器别名和updateFromXML

Javascript dhtmlxGrid筛选器别名和updateFromXML,javascript,xml,dhtmlx,Javascript,Xml,Dhtmlx,我正在使用dhtmlxGrid库 我使用函数updateFromXML每隔几分钟用新数据(在计时器上)更新网格 我的问题是,当我添加mygrid.filterByAll()时,updateFromXML功能中断。它不插入或删除新行。它只是更新现有行。 我在下面展示的doAfterUpdate函数有一段错误的代码 如果我删除mygrid.filterbyAll行,一切正常 下面是我的代码。我已经展示了我正在做的一个模板 <div id="gridbox" style="width:50%

我正在使用dhtmlxGrid库

我使用函数updateFromXML每隔几分钟用新数据(在计时器上)更新网格

我的问题是,当我添加mygrid.filterByAll()时,updateFromXML功能中断。它不插入或删除新行。它只是更新现有行。 我在下面展示的doAfterUpdate函数有一段错误的代码

如果我删除mygrid.filterbyAll行,一切正常

下面是我的代码。我已经展示了我正在做的一个模板

  <div id="gridbox" style="width:50%; height:500px; background-color:white;"></div>
  <br>
  <div><a href="#" onClick="start_timer_jobs()">Reload grid - Timer refresh data only </a></div>
  <br>
  <script>

var curr_sort = null;
var fetch_interval = null ; 


function doAfterUpdate() { 

mygrid.filterByAll(); ////something broken here. 
if ( curr_sort.length > 0 ) {
console.log ( 'setting sorting' ) ;
    var col_type = mygrid.getColType(curr_sort[0]);
    mygrid.sortRows ( curr_sort[0] ) ;
    }
 return ;
}


function fetch_data ( ) { 

curr_sort = mygrid.getSortingState();

var file_list = [ 'first.xml', 'second.xml', 'third.xml', 'first.xml', 'second.xml', 'third.xml' ] 
var random_number = Math.floor((Math.random()*5));
var url = './test_dirs/' + file_list[ random_number ] 
console.log ( 'fetch data ' +  url ) ; 
mygrid.updateFromXML(url, true, true , doAfterUpdate );



}

function start_timer_jobs ( ) { 

console.log ( 'in timer' ) ; 

if ( fetch_interval ) clearInterval(fetch_interval); 
fetch_interval = setInterval(function() { fetch_data(); }, 10*1000);


}

mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("./imgs/");
mygrid.setHeader("Sales,edtxt,ed,Price,In Store,Shipping,Bestseller,Publication");
mygrid.setColumnIds("Sales,edtxt,ed,Price,Store,Shipping,Bestseller,Publication");
mygrid.attachHeader("#numeric_filter,#text_filter,#numeric_filter,#numeric_filter,#numeric_filter,#numeric_filter,#numeric_filter,#text_filter");

mygrid.setInitWidths("50,150,100,80,80,80,80,200");
mygrid.setColAlign("right,left,left,right,center,left,center,center");
mygrid.setColTypes("ro,edtxt,ed,ro,ro,ro,ro,ro");

mygrid.setColSorting("int,str,str,int,str,str,str,str");
mygrid.init();
mygrid.enableColumnMove(true); 
mygrid.enableSmartRendering(true);
mygrid.preventIECaching(true);
mygrid.setSkin("dhx_skyblue");
mygrid.loadXML("./test_dirs/grid.xml"  );

  </script>



var curr_sort=null; var fetch_interval=null; 函数doAfterUpdate(){ mygrid.filterByAll();///这里有东西坏了。 如果(当前排序长度>0){ console.log(‘设置排序’); var col_type=mygrid.getColType(curr_sort[0]); mygrid.sortRows(curr_sort[0]); } 返回; } 函数fetch_data(){ curr_sort=mygrid.getSortingState(); var file_list=['first.xml','second.xml','third.xml','first.xml','second.xml','third.xml'] var random_number=Math.floor((Math.random()*5)); 变量url='./测试目录/'+文件列表[随机数] console.log('fetch data'+url); updateFromXML(url,true,true,doAfterUpdate); } 函数启动\计时器\作业(){ console.log('in timer'); if(取数间隔)clearInterval(取数间隔); fetch_interval=setInterval(函数(){fetch_data();},10*1000); } mygrid=新的dhtmlXGridObject('gridbox'); mygrid.setImagePath(“./imgs/”); setHeader(“销售、edtxt、ed、价格、店内、发货、畅销书、出版物”); mygrid.setColumnId(“销售、edtxt、ed、价格、商店、运输、畅销书、出版物”); mygrid.attachHeader(#数字过滤器、#文本过滤器、#数字过滤器、#数字过滤器、#数字过滤器、#数字过滤器、#数字过滤器、#文本过滤器”); mygrid.setInitWidths(“50150100,80,80,80200”); setColAlign(“right,left,left,right,center,left,center,center”); mygrid.setColTypes(“ro,edtxt,ed,ro,ro,ro,ro”); setColSorting(“int,str,str,int,str,str,str,str”); mygrid.init(); mygrid.enableColumnMove(true); mygrid.enableMartRendering(true); mygrid.preventIECaching(正确); mygrid.setSkin(“dhx_天蓝”); mygrid.loadXML(“./test_dirs/grid.xml”);
我在网格上使用过滤器时遇到了类似的问题

非常确定您需要:

  • 拆下滤清器
  • 然后刷新网格
  • 把过滤器重新装上
如果这不起作用,请改用clearAndLoad()