jQuery MiniUI

 找回密码
 立即注册
查看: 9540|回复: 27
打印 上一主题 下一主题

DataGrid 动态加载列未显示?? [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2013-9-16 09:16:42 |只看该作者 |正序浏览
function onSearch() {
            var form = new mini.Form("#form1");
            form.validate();
            if (form.isValid() == false) return;
            var data = form.getData();
            var json = mini.encode(data);
            $.ajax({
                url: "../SaleManager/SysModel.aspx?method=GetSaleColums",
                data: { data: json },
                cache: false,
                success: function (text) {
                    grid.set(text);
                }
            });
         
//            grid.set({
//                columns: [
//            { type: "indexcolumn" },
//            { field: "机构", width: 100, headerAlign: "center", header: "机构" },
//            { field: "纯净水18.9数量", width: 100, headerAlign: "center", header: "纯净水18.9数量" },
//            { field: "纯净水18.9金额", width: 100, headerAlign: "center", header: "纯净水18.9金额" },
//            { field: "数量合计", width: 100, headerAlign: "center", header: "数量合计" },
//            { field: "金额合计", width: 100, headerAlign: "center", header: "金额合计" }
//            ]});
            grid.setUrl("../Sytem/SysDate.aspx?method=GetSaleDay");
            grid.load({ data: json });

        }

以上代码注释掉的为GetSaleColums 获取的表头信息。但是在这种写法下没有显示获取到的结果集?
但是总记录数数是正确的。

Rank: 8Rank: 8

28#
发表于 2013-9-17 09:30:59 |只看该作者
linda931 发表于 2013-9-17 09:00
这样基本解决了。但是把  . 换成别的符号就是不直观了。

但是至少我知道问题出在那了。

因为很多客户的数据数据就是上面这种格式的,所以a.b就是对应那种格式

Rank: 4

27#
发表于 2013-9-17 09:00:46 |只看该作者
factory 发表于 2013-9-16 17:47
另外,你的field如果带.号 那么我们会把你的数据当成复杂对象处理

比如

这样基本解决了。但是把  . 换成别的符号就是不直观了。

但是至少我知道问题出在那了。



Rank: 8Rank: 8

26#
发表于 2013-9-16 17:47:21 |只看该作者
本帖最后由 factory 于 2013-9-16 18:19 编辑
linda931 发表于 2013-9-16 17:27
能告诉我到底问题出在那吗???

另外,你的field如果带.号 那么我们会把你的数据当成复杂对象处理

比如
{
    name:{a:"2"}
}

那么field="name.a"
会把你数据当成上面这种结构来解析.  而不是{name.a:2},导致你的数据不存在
你把a.b改成a_b,把. 换掉

Rank: 8Rank: 8

25#
发表于 2013-9-16 17:40:41 |只看该作者
linda931 发表于 2013-9-16 17:27
能告诉我到底问题出在那吗???

你18楼贴的是你的表头信息,用grid.setColumns()是对的啊.
另外,你ajax返回的如果是json字符串,需要转回数组能用grid.setColumns()

var columns = mini.decode(text);
grid.setColumns(columns)

Rank: 4

24#
发表于 2013-9-16 17:27:19 |只看该作者
factory 发表于 2013-9-16 16:42
不是,你setColumns()是设置的表头

数据的话,要么url加载后台返回的json字符串,如果是你自己用ajax交互的 ...

能告诉我到底问题出在那吗???

Rank: 4

23#
发表于 2013-9-16 16:46:10 |只看该作者
本帖最后由 linda931 于 2013-9-16 16:51 编辑
factory 发表于 2013-9-16 16:42
不是,你setColumns()是设置的表头

数据的话,要么url加载后台返回的json字符串,如果是你自己用ajax交互的 ...

怎么感觉你没有看懂我的意思

function onSearch() {
            var form = new mini.Form("#form1");
            form.validate();
            if (form.isValid() == false) return;
            var data = form.getData();
            var json = mini.encode(data);
            $.ajax({
                url: "../SaleManager/SysModel.aspx?method=GetSaleColums",
                data: { data: json },
                cache: false,
                success: function (text) {
                     grid.setColumns(text);
                }
            });        

            grid.setUrl("../Sytem/SysDate.aspx?method=GetSaleDay");
            grid.load({ data: json });
        }

上面的方法中:下面的代码是获取表头信息(表头的信息可以看 上面18#回复内容)
$.ajax({
                url: "../SaleManager/SysModel.aspx?method=GetSaleColums",
                data: { data: json },
                cache: false,
                success: function (text) {
                     grid.setColumns(text);
                }
            });        

下面的代码是获取数据(上面19#是实际数据内容)
grid.setUrl("../Sytem/SysDate.aspx?method=GetSaleDay");
            grid.load({ data: json });

但是最终就是不显示结果。
如果把18#的内容直接用  grid.setColumns()方法则数据可以正常呈现。

Rank: 8Rank: 8

22#
发表于 2013-9-16 16:42:48 |只看该作者
linda931 发表于 2013-9-16 14:26
也就是说我如果直接在grid.setColumns()中把调试出的结果写在里面是可以直接显示出结果来的。

那你们能否 ...

不是,你setColumns()是设置的表头

数据的话,要么url加载后台返回的json字符串,如果是你自己用ajax交互的,返回数据之后
grid.setData(text.data)
grid.setTotalCount(text.total)

Rank: 4

21#
发表于 2013-9-16 16:30:39 |只看该作者
factory 发表于 2013-9-16 13:28
那你的数据总得有个字段名吧?
比如{name:"001",lesson:"语文",point:"99"}

能帮忙找出问题来吗?

Rank: 4

20#
发表于 2013-9-16 14:26:22 |只看该作者
本帖最后由 linda931 于 2013-9-16 14:28 编辑
factory 发表于 2013-9-16 13:28
那你的数据总得有个字段名吧?
比如{name:"001",lesson:"语文",point:"99"}

也就是说我如果直接在grid.setColumns()中把调试出的结果写在里面是可以直接显示出结果来的。

那你们能否使用我上面的方法把结果显示出来??即使用方法获取显示的结构再使用grid.setColumns()把结果显示出来,而
不是把grid.setColumns()设置的列在前台写好了在把结果显示出来

Archiver|普加软件

GMT+8, 2024-6-20 23:10 , Processed in 1.026742 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部