起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7166|回复: 19

[结贴] 調用action後 data有數據 但datatables無法顯示出來

[复制链接]

19

主题

78

帖子

204

积分

中级会员

Rank: 3Rank: 3

积分
204
QQ
发表于 2017-1-9 17:41:44 | 显示全部楼层 |阅读模式
本帖最后由 594狂 于 2017-1-9 17:46 编辑

Model.prototype.button3Click = function(event){
                var self = this;
                biz.Request.sendBizRequest({
                        "context" : this.getContext(),
                        "action": "dcc007_action",
                        "contentType": "application/json",
                        "dataType": "application/json",
                        "parameters" : {
                                "id" : "10EFB180-7A57-4DC6-BCF3-2A6AAA05100F"
                        },
                        "callback": function(callbackdata) {
                                callbackdata.ignoreError = false;                                
                                if (callbackdata.state) {
                                        justep.Util.hint("dcc007_action返回Table值调用成功");
                                        var data = self.comp("data1");                                       
                                        data.loadData(callbackdata.response);
                                        data.first();
                                        alert(data.getCount());
                                        alert(JSON.stringify(callbackdata.response));                                                                                

                                }
                        }                        
                });
        };




        public static Table dcc007_action(String id) throws Exception {
                Connection conn = ModelUtils.getConnectionInTransaction("/dfs/dfs1/data");
                Statement st = conn.createStatement();
                String sql="Select S.shown_state, L.create_date from po_processlog AS L inner join po_shown_status AS S on L.station_code=S.station_code where L.poitem_id='10EFB180-7A57-4DC6-BCF3-2A6AAA05100F' order by L.create_date asc";               
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(SQL.DEFAULT_DB_NAME,sql);               
                ResultSet rs = st.executeQuery(sql);               
                        Table table=SQL.select(sqlMap,null,"/dfs/dfs1/data");
                        table.getProperties().put(Table.PROP_NAME_ROWID, "create_date");
                        return table;                       





SQL查詢完後會返回數條shown_state,create_date數據然後我創建一個data,增加以上兩個欄位
data.loadData(callbackdata.response);後  
data裡面是有數據的
但是datatables組件顯示不出數據!!!
甚麼原因?




alert顯示data是有數據的

alert顯示data是有數據的

但是datatables顯示不出數據

但是datatables顯示不出數據

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36127
发表于 2017-1-9 18:06:45 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

19

主题

78

帖子

204

积分

中级会员

Rank: 3Rank: 3

积分
204
QQ
 楼主| 发表于 2017-1-10 10:24:39 | 显示全部楼层
本帖最后由 594狂 于 2017-1-10 10:32 编辑
  1. 數據loadData給data後不會顯示
  2. loadData函數是data加載數據的底層函數,既不會改變當前行也不會刺激刷新相關事件,主要用於data和data之間數據傳遞或者批量加載數據,不會觸發任何刷新相關的事件,所以默認的load後是不會顯示數據的
  3. 如果使用loadData來加載數據,那麼一定要自己在加載數據後通過修改data游標的方法指定當前行,如:to()、first()等方法指定data的當前游標,同時還要特別注意grid,dataTable組件需要主動調用grid,dataTable組件的refresh()方法重畫
  4. 對於data推薦是接管onCustomRefresh事件來重新實現data的數據refreshData邏輯,同時在所有的外部調用都是用refreshData方法或者刷新操作
  5. 需要注意的是不要在loadData後直接調用data的refreshData方法
复制代码


依照您的連結,沒有找到dataTables的refresh方法,但是用了self.comp("dataTables1").reload();就可以讀出了,
除此之外還要注意cdata中創建的欄位要和資料庫的欄位名一樣,datatables同理
且java中 table.getProperties().put(Table.PROP_NAME_ROWID, "主鍵欄位名"); 這裡的主鍵要等於cdata中設置的主鍵
回复 支持 反对

使用道具 举报

19

主题

78

帖子

204

积分

中级会员

Rank: 3Rank: 3

积分
204
QQ
 楼主| 发表于 2017-1-10 10:30:01 | 显示全部楼层
本帖最后由 594狂 于 2017-1-10 10:46 编辑

另外我還有一個問題,同樣的sql語句,如果我使用resultSet2Table方法就取不到數據了,是甚麼原因麻煩幫看看代碼,謝謝!


  1. public static Table dcc007_action(String id) throws Exception {
  2.                 Connection conn = ModelUtils.getConnectionInTransaction("/dfs/dfs1/data");
  3.                 Statement st = conn.createStatement();
  4.                 String sql="Select S.shown_state, L.create_date from po_processlog AS L inner join po_shown_status AS S on L.station_code=S.station_code where L.poitem_id='10EFB180-7A57-4DC6-BCF3-2A6AAA05100F' order by L.create_date asc";
  5. ResultSet rs = st.executeQuery(sql);               
  6. Table table=com.justep.system.util.BizUtils.resultSet2Table(rs, "/dfs/dfs1/data");        
  7.                         table.getProperties().put(Table.PROP_NAME_ROWID, "shown_state");
  8.                         return table;                        
  9.         }
复制代码




擷取.PNG
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36127
发表于 2017-1-10 11:59:29 | 显示全部楼层
先看 rs中的数据是什么

不同的问题请分开发帖
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

19

主题

78

帖子

204

积分

中级会员

Rank: 3Rank: 3

积分
204
QQ
 楼主| 发表于 2017-1-10 12:11:32 | 显示全部楼层
本帖最后由 594狂 于 2017-1-10 13:46 编辑
jishuang 发表于 2017-1-10 11:59
先看 rs中的数据是什么

不同的问题请分开发帖

基本上這兩篇帖子性質很相似 sql語句都一樣 java也只修改成用resultset2table
rs中的數據和剛剛是一樣的  但是用resultset2table轉換後傳回前端 前端loaddata後沒有數據


擷取.PNG
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36127
发表于 2017-1-10 14:50:35 | 显示全部楼层
参考http://bbs.wex5.com/forum.php?mo ... 6&pid=165049439把table的内容输出看看有数据吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

37

主题

713

帖子

3310

积分

内部用户

积分
3310
发表于 2017-1-10 14:59:56 来自手机 | 显示全部楼层
很明显返回的json没有数据,跟一下看看是rs还是table没数据
回复 支持 反对

使用道具 举报

19

主题

78

帖子

204

积分

中级会员

Rank: 3Rank: 3

积分
204
QQ
 楼主| 发表于 2017-1-11 14:21:26 | 显示全部楼层
擷取.PNG -------------------------------------------------------------------------------------------
rs.getString(1);
有數據
------------------------------------------------------------------------------------------------
Table table= com.justep.system.util.BizUtils.resultSet2Table(rs, "/dfs/dfs1/data");
System.out.println(new com.justep.system.transform.Table2Row().transform(table,null).asXML());
table沒數據

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36127
发表于 2017-1-11 16:07:23 | 显示全部楼层
把输出的信息发一下看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-4-3 10:27 , Processed in 0.062597 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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