苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 6518|回复: 1

如何删除树表中显示的数据行?

[复制链接]

36

主题

54

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2025-2-22 12:03:41 | 显示全部楼层 |阅读模式
  1.         DataTableHelp tbl2=SmEditTreeGrid2.DataTableHelp;
  2.         for(int i=tbl2.DataRows.Count-1;i>=0;i--)
  3.         {
  4.                 RowData dr=tbl2.DataRows[i];
  5.                 dr.Delete();
  6.         }
复制代码

用这个代码,删除树表中显示的数据行,但有一些行删不掉。怎么样才能删除树表中所有的行?
回复

使用道具 举报

106

主题

473

帖子

2953

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2953
QQ
发表于 2025-2-22 12:29:36 | 显示全部楼层
目录树表中数据显示的位置跟SmEditTreeGrid2.DataTableHelp.DataRows中显示的顺序是不一致的。而树表删除节点需要先删除子节点再删除父节点。
所以想求直接删除树表中显示的所有的数据行得按照树表显示的列从最后往最前来倒序遍历。
  1. SmEditTreeGrid tbl= Proj.CurrentGrid as SmEditTreeGrid;
  2. //tbl.Rows.Count-1返回当前树表中最后一行的序号
  3. if(tbl.DataTableHelp.DataRows.Count>0)
  4. {
  5.         for (int i = tbl.Rows.Count-1; i >= tbl.Rows.Fixed; i--)
  6.         {
  7.                 tbl.Rows[i].GetRowData().Delete();
  8.         }
  9. }
  10. tbl.Save();
  11. //如果不想删除数据,只想清空显示的话按下面的代码写
  12. tbl.DataTableHelp.DataRows.Clear(); //仅移除表中显示
  13. tbl.DataTableHelp.AcceptChanges(); //接受移除的状态,保存时不会真正删除
  14. tbl.Rows.Count=tbl.Rows.Fixed; //清空表中显示的数据
复制代码

回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2025-6-14 15:37 , Processed in 0.085872 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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