FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1833|回复: 4
打印 上一主题 下一主题

一个grid如何多次动态创建列

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-10 14:57:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       有一个页面,有个下拉框,根据下拉框的值读取数据库,然后再grid中动态创建列。因为要先读取下拉框的值,所以动态创建只能放在pageload中了,页面首次加载时,没有问题,能动态创建。然后更改下拉框后页面回发后,发现也能正常运行加载动态列的函数,可是页面上的grid还是保持首次创建的样子,没有变化.       请问这是什么原因?
protected void Page_Load(object sender, EventArgs e)
{
       if (!IsPostBack)
            {
                DropLoad();//绑定下拉框
         }
        InitGrid(int.Parse(tableName.SelectedValue)); //根据下拉框的值动态创建列
}


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2014-4-10 15:01:43 | 只看该作者
1:放到Page_Init中试试
2:禁用ajax
板凳
 楼主| 发表于 2014-4-10 15:05:30 | 只看该作者
刘军 发表于 2014-4-10 15:01
1:放到Page_Init中试试
2:禁用ajax

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

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-26 18:41 , Processed in 0.046207 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表