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

QQ登录

只需一步,快速开始

查看: 4352|回复: 9

[结贴] treeData树形数据,希望实现按照汉字首字母排序的实现思路

[复制链接]

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
发表于 2017-6-21 09:09:23 | 显示全部楼层 |阅读模式
treeData树形数据,希望实现按照汉字首字母排序的实现思路
使用BEX5平台自带的$UI/system/components/justep/data/bizData控件不行
所以搞了一个$UI/system/components/justep/data/data控件
这个控件怎么从后台取数据,我的代码是这样写的,数据可以加载出来,但是没有树形的效果,怎么处理?
w页面data的写法:
<div component="$UI/system/components/justep/data/data" autoLoad="true" xid="treeData" isTree="true" idColumn="fID"><column label="主键" name="fID" type="String" xid="xid2"></column>
  <column label="编码" name="fCode" type="String" xid="xid3"></column>
  <column label="名称" name="fName" type="String" xid="xid4"></column>
  <column label="父ID" name="fPID" type="String" xid="xid5"></column>
  <treeOption xid="default1" parentRelation="fPID"></treeOption></div>

js加载treeData 数据:
var treeData = this.comp("treeData");
                var params = new biz.Request.ActionParam();
                params.setString("fLX",  "SFDY");
                biz.Request.sendBizRequest({
                        "context" : this.getContext(),
                        "action" : "queryCO_SJDYActionOrderbyfName",
                        "parameters" : params,
                        "callback" : function(data) {
                                if(data.state){debugger;
                                        var sjdyDb = data.response;
                                        treeData.loadData(sjdyDb);
                                        treeData.refreshData();
                                }else{
                                        biz.Request.errorMessage(data, "执行失败!", null, null);
                                }
                        }
                });

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-21 09:47:06 | 显示全部楼层
action是标准的queryAction吧?
1.把cdata中的主键值的名字设置为queryAction中idColumn的名字
2.参考
  1.                 var tp = new biz.Request.TranslateParam();
  2.                 tp.dataType = biz.Request.TranslateParam.DATATYPE_ROW_TREE;
  3.                 tp.setTreeOption('tree-parent-relation', "fParentID");
  4.                 var data = this.comp("data1");
  5.                 biz.Request.sendBizRequest({
  6.                         "context" : this.getContext(),
  7.                         "action" : "loadDataToTreeAction",
  8.                         "translateParam" : tp,
  9.                         "callback" : function(callbackData) {
  10.                                 callbackData.ignoreError = false;
  11.                                 if (callbackData.state) {
  12.                                         data.loadData(callbackData.response);
  13.                                 }
  14.                         }
  15.                 });
复制代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2017-6-21 13:50:32 | 显示全部楼层
你这回复质量也太低了,解决不了问题,还增加了我的工作量
1、看了其他帖子,明确说明了,KSQL不支持汉字的排序,必须使用SQL,标准的查询不支持SQL,只支持KSQL,所以没法使用标准的queryAction
2、cdata中的主键值的名字设置为queryAction中idColumn的名字
这是啥意思?
回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2017-6-21 13:55:52 | 显示全部楼层
这种问题解决起来为什么就这么难呢?
首先就是我先使用CDATA在前台自己组装数据,看看树形实现可以出来,先把这个问题解决了,在考虑从后台取数据
现在是我自己写的都不行,是哪里有问题
1.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-21 13:58:46 | 显示全部楼层
发帖的时候请详细描述问题,自定义的action就标注自定义的action
自定义的action自己在设置table中的主键列
自定义的action中设置参考
http://bbs.wex5.com/forum.php?mod=viewthread&tid=38364

前端调用就参考2楼发的代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2017-6-21 15:17:36 | 显示全部楼层
我先不管后台的数据怎么取
前端先去把数据组装出来,实现树形的结构,但是这个数据怎么组装?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-21 16:25:41 | 显示全部楼层
如果是action返回的table数据不需要自己组装,调用action时 设置相关的属性就可以,2楼发的代码中就有
如果要自己组装树形格式的数据,可以参考http://docs.wex5.com/bex5-ui-question-list-10106/中json串格式
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2017-6-22 16:30:59 | 显示全部楼层
var json = {"rows":[{"AP_SXSJ":"1","fName":"办公用品","fParentID":{},"rows":[{"AP_SXSJ":"2","fName":"记事本","fParentID":"1"},{"AP_SXSJ":"3","fName":"笔","fParentID":"1"}]}]};
         var data = this.comp("treeData");
         data.loadData(json,true);
         var grid= this.comp("treeGrid");
         grid.refresh();
我如果不使用BEX5,使用其他的树形数据,早都解决了,数据组装是这个样子的
那么bizData又是怎么设置,我不是加载到grid,是使用select去做这个树形,这个又怎么设置
一个这么简单的问题为什么就这么困难呢?能不能一次性把问题处理完毕,不知道这快速开发平台,速度在哪里,往往一个页面的布局是很快,后台也基本不要操心,但是只要涉及到一些比较比较个性化的东西,BEX5简直就是垃圾
回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2017-6-22 16:53:31 | 显示全部楼层
看了下整个tree的相关地方,BEX5是不是不支持树形下拉数据菜单,只有组织机构的相关下拉控件,其他的是不是不支持
除了org相关的就只有下面2个和树相关的:
tree-$UI/system/components/justep/tree/tree
treeLocate-$UI/system/components/justep/quickLocate/treeLocate
$UI/system/components/justep/gridSelect/gridSelect控件有一个属性是:appearance
为什么就是不能实现呢?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-22 17:14:01 | 显示全部楼层
1.不管是grid还是下拉 显示树形,要求的树形的数据格式都是一样的就是7楼的
2.树形下拉gridSelect才可以设置http://docs.wex5.com/bex5-ui-question-list-10018/
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 21:28 , Processed in 0.060803 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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