jQuery MiniUI

标题: 在asp.net后台程序中为mini-datagrid赋值问题 [打印本页]

作者: mini_zhukun    时间: 2014-8-7 10:38:01     标题: 在asp.net后台程序中为mini-datagrid赋值问题

本帖最后由 mini_zhukun 于 2014-8-7 10:41 编辑

在.net开发中,前台页面(即aspx页面)使用MINIUI的datagrid,然后在后台(aspx.cs)取数据,因为后台的数据的列不固定,所以在前台没有进行列属性设置,前台代码如下:
[attach]4961[/attach]


this.ReportColumn 字段是后台动态赋值列,代码如下:
[attach]4962[/attach]
Dt_Analysis是根据条件在数据库获取到的DataTable数据;

使用属性为 mini-datagrid 赋值,代码如下:
[attach]4963[/attach]
JSON.JsonFromatReportData(Dt_Analysis); 是我写的一个序列化成JSON字符串的方法,格式为 {"total":2,"data":[]}

页面运行后,进行查询操作,前台生成的代码如下:
[attach]4965[/attach]
  1. <div id="grid_Report" allowsortcolumn="false" enablehottrack="false" class="mini-datagrid" frozenstartcolumn="0" style="width: 100%; height: 270px;" allowresizecolumn="false" data="{"ResultType":6,"ResultData":"[{\"p_68ac9b15881f4ea6bed621f1aff29cf2\":\"9\",\"p_22fcb5f045fd45abaa54cbf1d334c38b\":\"0\",\"p_82d9b41fcc854b55b2c31316c539a7b5\":\"0\"},{\"p_68ac9b15881f4ea6bed621f1aff29cf2\":\"593\",\"p_22fcb5f045fd45abaa54cbf1d334c38b\":\"92\",\"p_82d9b41fcc854b55b2c31316c539a7b5\":\"556\"}]","ToTal":2,"PageIndex":1}" ondrawsummarycell="onDrawSummaryCell" frozenendcolumn="3" showpager="false" showsummaryrow="true">
  2.             <div property="columns">
  3.                 <div field="p_68ac9b15881f4ea6bed621f1aff29cf2" headeralign="center" width="80">5dsef</div><div field="p_22fcb5f045fd45abaa54cbf1d334c38b" headeralign="center" width="80">5aabml</div><div field="p_82d9b41fcc854b55b2c31316c539a7b5" headeralign="center" width="80">defef5dfml</div>
  4.             </div>
  5.         </div>
复制代码


运行后的效果:
[attach]4966[/attach]
有列,但是没有数据



作者: felt    时间: 2014-8-7 10:42:18

动态生成列,后台返回列数据,用grid.setColumns(columns)就可以
http://www.miniui.com/demo/#src=datagrid/setcolumns.html
表格数据填充用grid.setData(data)
作者: mini_zhukun    时间: 2014-8-7 10:46:30

felt 发表于 2014-8-7 10:42
动态生成列,后台返回列数据,用grid.setColumns(columns)就可以
http://www.miniui.com/demo/#src=datagri ...

这个我看过了,是在前台使用js的方法来赋值,和我的需求有点不同,我在后台生成这个 datagrid 报表后,我还生成了一个图表,所以我对datagrid的列赋值以及数据的赋值都放在 .cs 文件中进行的了!
作者: felt    时间: 2014-8-7 10:49:53

mini_zhukun 发表于 2014-8-7 10:46
这个我看过了,是在前台使用js的方法来赋值,和我的需求有点不同,我在后台生成这个 datagrid 报表后,我 ...

datagrid的数据是不支持标签化的
只能通过js方式setData(data)
作者: mini_zhukun    时间: 2014-8-7 10:54:25

felt 发表于 2014-8-7 10:49
datagrid的数据是不支持标签化的
只能通过js方式setData(data)

  也就是说 我在后台使用 grid_Report.Attributes.Add("data", jsondata); 这种方式的赋值是不会成功的了????
作者: mini_zhukun    时间: 2014-8-7 10:58:05

felt 发表于 2014-8-7 10:49
datagrid的数据是不支持标签化的
只能通过js方式setData(data)

[attach]4968[/attach]

作者: felt    时间: 2014-8-7 11:05:35

mini_zhukun 发表于 2014-8-7 10:58

表格数据一般都是比较复杂了,数据写在标签里不利于后期维护
所以我们禁掉了这个标签配置
请用js赋值
作者: mini_zhukun    时间: 2014-8-7 11:09:12

felt 发表于 2014-8-7 11:05
表格数据一般都是比较复杂了,数据写在标签里不利于后期维护
所以我们禁掉了这个标签配置
请用js赋值 ...

哦,好的!
作者: mini_zhukun    时间: 2014-8-7 11:29:03

felt 发表于 2014-8-7 11:05
表格数据一般都是比较复杂了,数据写在标签里不利于后期维护
所以我们禁掉了这个标签配置
请用js赋值 ...

grid.setData(JSON);

这个有示例吗?

JSON是一个对像,还是一个对象数组哟!
作者: felt    时间: 2014-8-7 11:31:57

mini_zhukun 发表于 2014-8-7 11:29
grid.setData(JSON);

这个有示例吗?

数组数据
[{},{},{}]

作者: mini_zhukun    时间: 2014-8-7 11:48:32

felt 发表于 2014-8-7 11:31
数组数据
[{},{},{}]

最新测试代码
  1.         <div id="datagrid1" class="mini-datagrid" style="width: 100%; height: 270px;" showpager="false" idField="id" >
  2.             <div property="columns">
  3.                 <div field="id" headeralign="center" width="80">5dsef</div>
  4.                 <div field="name" headeralign="center" width="80">5aabml</div>
  5.                 <div field="key" headeralign="center" width="80">defef5dfml</div>
  6.             </div>
  7.         </div>
复制代码
这是JS里面的代码
  1.         mini.parse();
  2.         var grid = mini.get("datagrid1");
  3.         grid.on("load", function (e) {
  4.             grid.setData([{ id: "9", name: "0", key: "0" }, { id: "593", name: "92", key: "556"}]);
  5.         });
复制代码

运行后没有效果呢?

作者: felt    时间: 2014-8-7 13:19:49

mini_zhukun 发表于 2014-8-7 11:48
最新测试代码这是JS里面的代码

运行后没有效果呢?

你又不是url加载的数据,哪来的onload事件
直接setData
作者: sampou    时间: 2017-5-4 08:10:12

felt 发表于 2014-8-7 13:19
你又不是url加载的数据,哪来的onload事件
直接setData

datagrid里的result如何动态赋值?
现在我是用ajax从后台获取动态设置列,不仅返回了“data”和“total”还有其他信息,我要在前台获取,怎么获取其他信息?
“data”和“total”可以分别用setData和setTotalCount这两个方法接收,其他值不知怎么接收,可不可以类似自定义变量,然后在其他监听函数里面获取之类的
作者: felt    时间: 2017-5-4 09:19:59

sampou 发表于 2017-5-4 08:10
datagrid里的result如何动态赋值?
现在我是用ajax从后台获取动态设置列,不仅返回了“data”和“total” ...

既然你是用ajax获取的数据,前端也是你自己处理,你可以用自定义变量保存
作者: sampou    时间: 2017-5-4 12:38:52

felt 发表于 2017-5-4 09:19
既然你是用ajax获取的数据,前端也是你自己处理,你可以用自定义变量保存 ...

恩,最后想到了用变量保存




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2