前言
由于grid控件动态创建列只能在page_init事件里,不能直接用ajax方式,所以页面不刷新的话效果是出不来的。
(为什么一定要在page_init创建列,具体请看官网:http://pro.fineui.com/#/grid/grid_dynamic_columns.aspx)
如果想实现button点击事件,动态创建grid列的效果(也就是ajax效果),可以使用iframe的方式(如果是老司机就知道iframe可以实现类似的ajax效果折中方案)。
在fineuiPro 里有哪些控件能支持iframe?panel ,tab等容器控件,具体可以查询控件的api。总的来说,就是利用button点击事件刷新iframe的url,iframe子页刷新显示grid控件。
具体实现代码:
-
1 创建父页
设置panel为iframe页,添加2个button来切换效果
-
2 父页后台事件,刷新iframe的url。注意IFrameUrl是ajax属性,也就是说button点击事件是可以回发并显示出效果的。
刷新iframe的url属性
-
3 子页GridForm.aspx设置
就放一个grid
-
4 子页后台代码。注意页面的page_init事件,代码大概意思:根据url参数,显示数据1或者数据2,示例出动态列的grid。
![](https://img.haomeiwen.com/i5443080/34a94b0c7580142d.png)
- 5 关于方法CreatGridStructByDataTable,这个是我自己封装的代码,参考:https://gitee.com/sundayisblue/SugarFineUITool
。
![](https://img.haomeiwen.com/i5443080/49cb4f21c2152eb1.png)
最后看下效果
![](https://img.haomeiwen.com/i5443080/364378c553405c00.gif)
网友评论