FineUI 官方论坛

标题: Grid表格动态生成 [打印本页]

作者: chiikin    时间: 2015-11-29 20:59
标题: Grid表格动态生成
我的需求是,当筛选条件改变时,列会改变。比如当条件1时有列A-D,条件2时有列E-G,每次列都不同,以此类推。现在FineUI无法在回发的时候重新改变Grid的结构。

作者: zy32002    时间: 2015-11-30 09:59
官网都有例子,好好看看吧
http://fineui.com/demo/#/demo/grid/grid_dynamic_columns.aspx
作者: chiikin    时间: 2015-11-30 11:25
zy32002 发表于 2015-11-30 09:59
官网都有例子,好好看看吧
http://fineui.com/demo/#/demo/grid/grid_dynamic_columns.aspx

你好像并没有明白我的意思,官方的演示我肯定是看过的,但是不能满足我描述的需求,我说了,我这里的列是完全动态的,不是只在页面第一次被访问的时候就动态生成一次,而是在交互的过程中就会不断的改变。
作者: 赏月看花闲观    时间: 2015-11-30 11:45
完全可以呀, 设置列的Hidden="true"就可以隐藏起来。
作者: chiikin    时间: 2015-11-30 12:03
赏月看花闲观 发表于 2015-11-30 11:45
完全可以呀, 设置列的Hidden="true"就可以隐藏起来。

还不够,在数据库里有行列转换的功能,可以通过把行转换成列。在这种情况下有可能存在列数不定。那么按你那么说的把列隐藏起来,那我该预先生成多少列才合适?
作者: zy32002    时间: 2015-11-30 12:33
chiikin 发表于 2015-11-30 11:25
你好像并没有明白我的意思,官方的演示我肯定是看过的,但是不能满足我描述的需求,我说了,我这里的列是 ...

不断改变,刷新页面就行
作者: chiikin    时间: 2015-11-30 14:15
zy32002 发表于 2015-11-30 12:33
不断改变,刷新页面就行

说的好有道理,我竟然无言以对。
作者: 刘军    时间: 2015-11-30 15:28
chiikin 发表于 2015-11-30 14:15
说的好有道理,我竟然无言以对。

他说的没错,动态列不支持ajax,但是你可以不使用ajax回发,改成常规的就会刷新整个页面
作者: zy32002    时间: 2015-11-30 16:28
如果怕有些条件值被刷新掉了,可以保存在cookie里,刷新的时候再写回去就可以了。因为不是ajax的,只能刷新页面来达到效果。
作者: chiikin    时间: 2015-12-1 16:04
zy32002 发表于 2015-11-30 16:28
如果怕有些条件值被刷新掉了,可以保存在cookie里,刷新的时候再写回去就可以了。因为不是ajax的,只能刷新 ...

你说的不错,但存在用户体验不好,每次刷新,页面都会空白一会,尤其是当页面非常大时空白的时间更是长,更是令人反感。另外,假设有有限个列,每次显示其中其中的一部分,但实际上运行非常的慢,每次修改列的显隐都非常耗时,基本能达到5-10s。在这里需要澄清的是,后台数据处理时间非常短100毫秒左右。
作者: 堕落血狐    时间: 2016-3-31 19:45
我遇到的问题没你遇到的那么操蛋。。。。。我也需要做一个动态加载列,但是我是根据不同表来的,可以做成几个页面。。。你那个就真没办法了,刷新貌似都不行,今天我试了下,动态改变他的数据必须得重新生成。。。。太扯淡了。。。
作者: 甘桂    时间: 2016-4-1 10:25
在存储过程中生成的行转列的表的字段名,如何取。
作者: 甘桂    时间: 2016-4-1 10:34
在存储过程中动态生成的行转列的表后,如何取这个表的字段名。只有取到这字段名后,才能动态的生成GRID列。。。。。
作者: ladysman1219    时间: 2017-5-22 23:59
同求解决方案 看到最后也没有明白怎么解决的。
我这里属树控件选择后根据选择获取数据,从而动态生成表格列,列数大部分都不一样
作者: 甘桂    时间: 2017-6-19 11:43
private void InitGrid()
       {
            FineUI.BoundField bf;

            
            bf = new FineUI.BoundField();
            bf.DataField = "FoodProjectName";
            bf.SortField = "FoodProjectName";
            bf.DataFormatString = "{0}";
            bf.HeaderText = "报价项目名称";
            bf.Width = 180;
            Grid2.Columns.Add(bf);

            bf = new FineUI.BoundField();
            bf.DataField = "FoodTypeName";
            bf.SortField = "FoodTypeName";
            bf.DataFormatString = "{0}";
            bf.HeaderText = "物料类别";
            bf.Width = 100;
            Grid2.Columns.Add(bf);

            bf = new FineUI.BoundField();
            bf.DataField = "FoodName";
            bf.SortField = "FoodName";
            bf.DataFormatString = "{0}";
            bf.HeaderText = "物料名称";
            bf.Width = 100;
            Grid2.Columns.Add(bf);

            bf = new FineUI.BoundField();
            bf.DataField = "FoodModels";
            bf.SortField = "FoodModels";
            bf.DataFormatString = "{0}";
            bf.HeaderText = "物料型号";
            bf.Width = 100;
            Grid2.Columns.Add(bf);

            bf = new FineUI.BoundField();
            bf.DataField = "FoodUnit";
            bf.SortField = "FoodUnit";
            bf.DataFormatString = "{0}";
            bf.HeaderText = "物料单位";
            bf.Width = 80;
            Grid2.Columns.Add(bf);

            DataTable usinfop = new DataTable();
            usinfop = bllu.GetList("Remark='供应商' and Enabled='True' ORDER BY ID ASC").Tables[0];
            for (int i=0;i< usinfop.Rows.Count;i++)
            {
                bf = new FineUI.BoundField();
                bf.DataField = usinfop.Rows["ChineseName"].ToString();
                bf.SortField = usinfop.Rows["ChineseName"].ToString();
                bf.DataFormatString = "{0}";
                bf.HeaderText = usinfop.Rows["ChineseName"].ToString();
                bf.Width = 100;
                Grid2.Columns.Add(bf);
            }


            Grid2.DataKeyNames = new string[] { "Id"};
        }

bllu.GetList的数据源就是SQL SERVER 2008存储过程动态行转列数据DATASET。
不知道是不是你想要的
作者: 甘桂    时间: 2017-6-19 11:45
上面是我公司报价用的供应商横向查询表。




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