我在单个页面上面临多个网格视图的一些问题。
在开始时,当我在 jQueryUI 选项卡中打开单个网格视图时,它的分页工作正常。现在,当我使用 ajax 调用打开一个带有新网格视图的新选项卡时,新网格视图上的分页工作正常,但第一个网格视图上的分页链接呈现/打开一个新页面,而不是使用 ajax 更新网格视图,就像寻呼机一样链接是普通链接
我没有得到确切的问题或原因,任何帮助将不胜感激。
问题在于 ajax 加载的内容,内容上的点击事件不会被注册,你需要 .on('click') 而不是 .click()
问题在这里解释
我以前也有同样的问题。单击分页或排序后,链接将在新页面中打开。
如果您注意到,您会发现 url 中没有&ajax=id-of-the-grid
值,其中 id 是您要更新的网格的 id。
为我解决问题的是在视图中添加脚本 jquery.yiigridview.js 文件,并手动重新初始化视图。
这是一段工作代码,它为我解决了烦人的问题。
<script type="text/javascript" src="/Project/assets/dd5f9a70/gridview/jquery.yiigridview.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
jQuery('[data-toggle=popover]').popover();
jQuery('body').tooltip({"selector":"[data-toggle=tooltip]"});
jQuery('#project-grid').yiiGridView(
{'ajaxUpdate':['project-grid'],
'ajaxVar':'ajax',
'pagerClass':'pagination',
'loadingClass':'grid-view-loading',
'filterClass':'filters',
'tableClass':'table table-stats table-striped table-sortable',
'selectableRows':1,
'enableHistory':false,
'updateSelector':'{page}, {sort}',
'filterSelector':'{filter}',
'url':'/Project/index.php/realTime/AjaxUpdateProjectGrid',
'pageVar':'Project_page',
'afterAjaxUpdate':function() {
jQuery('.popover').remove();
jQuery('[data-toggle=popover]').popover();
jQuery('.tooltip').remove();
jQuery('[data-toggle=tooltip]').tooltip();
}});
});
/*]]>*/
</script>
希望它可以帮助某人。谢谢,麦克斯