FineUI 官方论坛

标题: 一个grid如何多次动态创建列 [打印本页]

作者: 幻风琉璃    时间: 2014-4-10 14:57
标题: 一个grid如何多次动态创建列
       有一个页面,有个下拉框,根据下拉框的值读取数据库,然后再grid中动态创建列。因为要先读取下拉框的值,所以动态创建只能放在pageload中了,页面首次加载时,没有问题,能动态创建。然后更改下拉框后页面回发后,发现也能正常运行加载动态列的函数,可是页面上的grid还是保持首次创建的样子,没有变化.       请问这是什么原因?
protected void Page_Load(object sender, EventArgs e)
{
       if (!IsPostBack)
            {
                DropLoad();//绑定下拉框
         }
        InitGrid(int.Parse(tableName.SelectedValue)); //根据下拉框的值动态创建列
}


调试过程:
首次页面加载时,可以看到动态创建列成功了[attach]5014[/attach];
更改下拉框后,看到grid重新变成了4项。可是页面就是没变[attach]5015[/attach]


作者: 刘军    时间: 2014-4-10 15:01
1:放到Page_Init中试试
2:禁用ajax
作者: 幻风琉璃    时间: 2014-4-10 15:05
刘军 发表于 2014-4-10 15:01
1:放到Page_Init中试试
2:禁用ajax

因为涉及要传下拉框的值进去,Page_Init没办法获取
作者: tarcyshu    时间: 2014-4-10 20:44
关注一下。之前研究过,动态创建列只能写在Page_Init里只能生效,如果页面已经创建只能通过前台JS实现了。
作者: 幻风琉璃    时间: 2014-4-15 09:10
发表一下我最后的解决方案,首先,因为要根据回传的值动态创建列,因此不能写在Page_Init,只好写在Page_Load。至于是否写在if (!IsPostBack)里面,可以根据情况自定。pagemanager里加上EnableAjax="false"。   以上实测可通过页面刷新来实现加载多种不同的动态列。




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4