Yii使用renderPartial绘制的CGridView中checkall功能无效

使用renderPartial方法和render方法的主要区别在于前者没有加载layout,

在renderPartial方法中注册的yiigridview相关js脚本得不到执行,而render方法则无此问题。

通常renderPartial和ajax调用结合来绘制和更新局部界面或展现一个弹出对话框。

那么可以在该局部界面或对话框所在的完整页面中添加相应的脚本,比如checkall功能:

<script type="text/javascript">//this script is a hack for gridview checkall not working with render partial
jQuery(document).on('click','#your_grid_c0_all',function() {
	var checked=this.checked;
	jQuery("input[name='id\[\]']:enabled").each(function() {this.checked=checked;});
});
jQuery(document).on('click', "input[name='id\[\]']", function() {
	jQuery('#your_grid_c0_all').prop('checked', jQuery("input[name='id\[\]']").length==jQuery("input[name='id\[\]']:checked").length);
});

by iefreer

你可能感兴趣的:(yii,check,all,CGridView)