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

QQ登录

只需一步,快速开始

查看: 3455|回复: 13

[结贴] 怎么修改索引号,改变列表位置?

[复制链接]

17

主题

130

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
QQ
发表于 2017-11-17 11:02:31 | 显示全部楼层 |阅读模式
这边有个聊天列表 想要在来消息的时候 自动把这个新消息列表放到第一位  newData是可以设置index属性的 但是 现在需要通过 setValue来修改(来新消息 放到最列表最上面) 但是怎么修改index索引号呢

17

主题

130

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
QQ
 楼主| 发表于 2017-11-17 11:15:16 | 显示全部楼层
我是要接管刷新吗 拿一条数据有刷新 我就改变哪一条index 是这样吗
回复 支持 反对

使用道具 举报

发表于 2017-11-17 11:27:27 | 显示全部楼层
你是list显示数据的吗??list中  bind-text属性绑定  $index()  
就可以显示行号了!

行号会自动感知变化的!

http://docs.wex5.com/comps-list/

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

17

主题

130

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
QQ
 楼主| 发表于 2017-11-17 11:56:03 | 显示全部楼层
本帖最后由 54huige 于 2017-11-17 12:26 编辑
liangyongfei 发表于 2017-11-17 11:27
你是list显示数据的吗??list中  bind-text属性绑定  $index()  
就可以显示行号了!

我想在已显示的数据上改变行号 让"最新消息" 自动跑到第一行
就是做聊天消息列表  得到新消息的时候 让最新消息显示在最上面

就是想让 setValue修改后的列表 自动显示在第一行
回复 支持 反对

使用道具 举报

发表于 2017-11-17 13:31:04 | 显示全部楼层
54huige 发表于 2017-11-17 11:56
我想在已显示的数据上改变行号 让"最新消息" 自动跑到第一行
就是做聊天消息列表  得到新消息的时候 让最 ...

data.loadData() 方法也可以指定索引的!
http://docs.wex5.com/wex5-ui-question-list-2207/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

17

主题

130

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
QQ
 楼主| 发表于 2017-11-17 13:45:25 | 显示全部楼层
liangyongfei 发表于 2017-11-17 13:31
data.loadData() 方法也可以指定索引的!
http://docs.wex5.com/wex5-ui-question-list-2207/ ...

  data.loadData不是增加 加载数据的吗 我是想在 已经存在于列表的数据 进行修改 服务器传过来消息就进行修改 修改后就把列表排在最前面
回复 支持 反对

使用道具 举报

发表于 2017-11-17 13:57:14 | 显示全部楼层
54huige 发表于 2017-11-17 13:45
data.loadData不是增加 加载数据的吗 我是想在 已经存在于列表的数据 进行修改 服务器传过来 ...

那,需要用冒泡排序的方式
将当前行,一行一行的移动到最前边才行!

查看data组件的API 文档
getRowIndex
exchangeRow

这两个方法依次交换行!将当前行放在最前边就行了

当然你也可以自己获取行对象的数组,自己排序
http://docs.wex5.com/wex5-ui-question-list-2183/


如果用data.setValue修改索引,那么所有行对象的索引都会变化的!都需要修改的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

17

主题

130

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
QQ
 楼主| 发表于 2017-11-17 14:23:26 | 显示全部楼层
liangyongfei 发表于 2017-11-17 13:57
那,需要用冒泡排序的方式
将当前行,一行一行的移动到最前边才行!

感谢版主大人   用您的方法已经解决了
  1.         Model.prototype.li1Click = function(event){
  2.                                        
  3.                         var goosdatalist = this.comp("goodsData");
  4.                         
  5.                         var crow = goosdatalist.getFirstRow();
  6.                         
  7.                         goosdatalist.exchangeRow(crow,event.bindingContext.$object);
  8.                         
复制代码

结帖吧 大大

B%WUQCI18{CJKFB85FBV46U.png
回复 支持 反对

使用道具 举报

发表于 2017-11-17 14:27:21 | 显示全部楼层
54huige 发表于 2017-11-17 14:23
感谢版主大人   用您的方法已经解决了
结帖吧 大大

你确定这样对吗??第一行和当前行换行了!那么第一行的顺序应该显示在第二行上才对吧!
当时现在却直接   显示到后面某行上去了

这样逻辑正确吗??
我觉得应该是冒泡排序的方式!  当前行和上一行依次交互,直到交换到最上边为止
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

17

主题

130

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
QQ
 楼主| 发表于 2017-11-27 16:51:23 | 显示全部楼层
liangyongfei 发表于 2017-11-17 14:27
你确定这样对吗??第一行和当前行换行了!那么第一行的顺序应该显示在第二行上才对吧!
当时现在却直接  ...

如果用以上代码 出现的css 会重置 默认不显示display:none      如果直接置换到最上面 就不会显示 看来还是要用冒泡算法  可是这个我要怎么用呢  
  1. Data.getFirstRow();——-获取第一行
  2. Data.getLastRow();——–获取最后一行
  3. Data.next();————–游标移动到下一行
  4. Data.pre();—————游标移动到上一行
  5. Data.first();————–游标移动到第一行
  6. Data.last();—————游标移动到最后一行
  7. Data.to(row);————-游标移动到指定行
复制代码


用这些吗 我用 -获取第一行  是可以的 但是想获取上一行 怎么办 我要循环吗   有代码参考吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 17:39 , Processed in 0.116368 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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