关于jqGrid动态改变列的解决方案
项目中使用了jqGrid列表控件,碰到“通过选择不同的日期段,出现该日期段中每一天的统计数据”这样的需求。因为之前对这个列表控件不是很熟悉,网上的资料显示和列相关的两个属性:colName、colModel都是不可更改的。
所以这个办法行不通,也就退而求其次,想通过重新加载的方法,为这两个列重新设置值。但是,这仍然没有成功。中文社区中,也没有很有效的解决方案。后来同事在英文社区,给找到了相应的解决方案。在重新加载之前,得先调用——gridunload 这样一个方法。然后重新为colName和colModel设置属性值,重新加载就可以动态改变列了。
也就是说,通常情况下你得为此准备两个方法:firstLoad()、reLoad().两个方法中都需要定义形如: $("#list4″).jqGrid({});的加载方法。在reload方法中,你首先调用$("#list4″).GridUnload();就可以动态改变列了。
当然,我觉得作为一个很常用且普遍的需求,jqGrid应该内置到API中,而不是采用这样不直观的方法。