首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用ZK删除所有选中的表行

使用ZK删除所有选中的表行
EN

Stack Overflow用户
提问于 2013-02-08 14:50:38
回答 1查看 1.6K关注 0票数 0

我有一个ZK网格,其中我在每一行上生成随机数。每一行都由一个复选框和数字本身组成。

我想有一个按钮,删除所有的行与复选框选中。下面是“delete”按钮的事件处理程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deleteButton.addEventListener(Events.ON_CLICK,
            new EventListener() {

        public void onEvent(Event evt) {
                Iterator<Component> selected = randomTable.queryAll("row checkbox").iterator();
                System.out.println("Deleted: ");
                while (selected.hasNext()) {
                    Checkbox c = (Checkbox) selected.next();
                    if (c.isChecked()) {
                        System.out.print(c.getId()); 
                        System.out.println(" from row " + c.getParent().getId());
                        c.getParent().detach(); // detach the checked row
                    }
                }
            }
        });   

但它只删除第一个选中的行,即使它找到了所有其他选中的行。

我仍然是ZK的新手。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-08 16:27:04

我想出了一个解决办法。事实证明,如果我使用一个中间列表来存储我想要删除的行,那么detach()可以处理所有这些行。

无论如何,请随时分享任何关于为什么它在一开始就不起作用的提示。任何贡献+1。

下面是更新后的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deleteButton.addEventListener(Events.ON_CLICK,
            new EventListener() {
        public void onEvent(Event evt) {
            List<Component> toRemove = new Vector<Component>();
            Iterator<Component> selected = randomTable.queryAll("row checkbox").iterator();
            System.out.println("Deleted: ");
            while (selected.hasNext()) {
                Checkbox c = (Checkbox) selected.next();
                if (c.isChecked()) {
                    System.out.print(c.getId()); 
                    System.out.println(" from row " + c.getParent().getId());
                    toRemove.add(c.getParent());
                }
            }
            for (Component c : toRemove)
                c.detach();
        }

    });   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14775151

复制
相关文章
【C++】运算符重载 ⑥ ( 一元运算符重载 | 后置运算符重载 | 前置运算符重载 与 后置运算符重载 的区别 | 后置运算符重载添加 int 占位参数 )
讲解了 前置运算符 的 重载 , 前置运算符就是 ++Object 或 --Object , 一元运算符 在 对象的 前面 ;
韩曙亮
2023/10/15
1550
【C++】运算符重载 ⑥ ( 一元运算符重载 | 后置运算符重载 | 前置运算符重载 与 后置运算符重载 的区别 | 后置运算符重载添加 int 占位参数 )
【C++】运算符重载 ⑥ ( 一元运算符重载 | 后置运算符重载 | 前置运算符重载 与 后置运算符重载 的区别 | 后置运算符重载添加 int 占位参数 )
讲解了 前置运算符 的 重载 , 前置运算符就是 ++Object 或 --Object , 一元运算符 在 对象的 前面 ;
韩曙亮
2023/10/15
1410
【C++】运算符重载 ⑥ ( 一元运算符重载 | 后置运算符重载 | 前置运算符重载 与 后置运算符重载 的区别 | 后置运算符重载添加 int 占位参数 )
C++重载一元前缀/后缀运算符
重载一元前缀运算符的时候,重载函数应该是这样的: operator++() 而重载一元后缀运算符的时候,重载函数是这样的 operator++(int) 注意,这里的参数不管是在声明还是在实现中,都不需要带上变量名。 并且,重载后缀运算符的时候,需要返回变量在被改变之前的值。
灯珑LoGin
2022/10/31
3230
【C++】运算符重载 ⑭ ( 逻辑与 && 运算符重载 | 逻辑或 || 运算符重载 | 完整代码示例 )
逻辑与 && 和 逻辑或 || 运算符 是 可以重载的 , 这两个操作符是 特殊操作符 ;
韩曙亮
2023/10/15
1830
【C++】运算符重载 ⑭ ( 逻辑与 && 运算符重载 | 逻辑或 || 运算符重载 | 完整代码示例 )
【C++】运算符重载 ⑦ ( 一元运算符重载 | 后置运算符重载 | 使用 全局函数 实现 后置 ++ 自增运算符重载 | 使用 成员函数 实现 后置 -- 自减运算符重载 )
韩曙亮
2023/10/15
2100
【C++】运算符重载 ⑦ ( 一元运算符重载 | 后置运算符重载 | 使用 全局函数 实现 后置 ++ 自增运算符重载 | 使用 成员函数 实现 后置 -- 自减运算符重载 )
【C++】运算符重载 ② ( 类内部定义云算符重载 - 成员函数 | 类外部定义运算符重载 - 全局函数 | 可重载的运算符 )
当使用 + 将 个对象相加时 , C++ 编译器会查找是否有定义运算符重载函数 ;
韩曙亮
2023/10/15
2700
【C++】运算符重载 ⑤ ( 一元运算符重载 | 使用 成员函数 实现 前置 ++ 自增运算符重载 | 使用 成员函数 实现 前置 - - 自减运算符重载 )
韩曙亮
2023/10/15
1920
【C++】运算符重载 ⑤ ( 一元运算符重载 | 使用 成员函数 实现 前置 ++ 自增运算符重载 | 使用 成员函数 实现 前置 - - 自减运算符重载 )
【C++】运算符重载 ④ ( 一元运算符重载 | 使用 全局函数 实现 前置 ++ 自增运算符重载 | 使用 全局函数 实现 前置 - - 自减运算符重载 )
为了使全局函数中能访问 Student 类的私有成员 , 需要将该全局函数声明为 友元函数 ;
韩曙亮
2023/10/15
2080
【C++】运算符重载 ④ ( 一元运算符重载 | 使用 全局函数 实现 前置 ++ 自增运算符重载 | 使用 全局函数 实现 前置 - - 自减运算符重载 )
python类的继承与运算符重载
Officially, CPython has no rule at all for when exactly overridden method of subclasses of built-in types get implicitly called or not. As an approximation, these methods are never called by other built-in methods of the same object. For example, an overridden __getitem__() in a subclass of dict will not be called by e.g. the built-in get() method.
哒呵呵
2018/08/06
8740
【C++】运算符重载案例 - 字符串类 ⑤ ( 重载 大于 > 运算符 | 重载 小于 < 运算符 | 重载 右移 >> 运算符 - 使用全局函数重载 | 代码示例 )
左移 << 操作符 cout << s << endl , 是将 s 对象输出到 cout 标准输出流中 ;
韩曙亮
2023/10/15
5480
C++重载运算符练习--对people类重载“= =”运算符和“=”运算符
题目描述 对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。 代码如下 #include<iostream> #include<string> using namespace std; class Data{ public: Data(){} Data(int yy,int mm,int dd){ year=yy; month=mm; day=dd;
Enterprise_
2018/05/18
3.2K2
C++重载运算符练习--对people类重载“= =”运算符和“=”运算符
题目描述 对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。 代码如下 #include<iostream> #include<string> using namespace std; class Data{ public: Data(){} Data(int yy,int mm,int dd){ year=yy; month=mm; day=dd;
Enterprise_
2019/03/01
3810
C++重载运算符练习--对people类重载“= =”运算符和“=”运算符
【C++】运算符重载 ⑧ ( 左移运算符重载 | 友元函数 / 成员函数 实现运算符重载 | 类对象 使用 左移运算符 )
上述 运算符重载 既可以使用 成员函数 进行重载 , 又可以使用友元函数进行重载 ;
韩曙亮
2023/10/15
2870
【C++】运算符重载 ⑧ ( 左移运算符重载 | 友元函数 / 成员函数 实现运算符重载 | 类对象 使用 左移运算符 )
【Groovy】Groovy 运算符重载 ( 运算符重载 | 运算符重载对应方法 )
Groovy 类可以进行运算符重载 , 任何一个类都可以使用预定义的 运算符 进行运算 , 如 " + - * / " 加减乘除 操作 , Groovy 中支持
韩曙亮
2023/03/30
2.8K0
【Groovy】Groovy 运算符重载 ( 运算符重载 | 运算符重载对应方法 )
运算符重载之左移运算符重载
左移运算符重载 #include<iostream> using namespace std; class wood { friend ostream& operator<<(ostream& cout, wood& d); public: wood(int num):num(num){} private: int num; }; //左移运算符重载只能用全局函数 ostream& operator<<(ostream& cout, wood& d) { cout << "木头的数量为" << d.
大忽悠爱学习
2021/02/22
5350
运算符重载之递增运算符重载
递增运算符重载 #include <iostream> using namespace std; //声明类 class wood { friend ostream& operator<<(ostream& cout, wood myint); public: //默认构造函数将m_Num初始化为0 wood() { m_Num = 0; } //前置递增++ //如果不用引用,就是调用重载函数,调用完之后就销毁(因为放在栈区) //引用是别名,调用地址 wood& opera
大忽悠爱学习
2021/02/22
3690
【C++】成员函数重载二元和一元运算符
重载双目运算符时,运算符函数中应该具有两个参数,若运算符函数作为类的成员函数(当运算符重载函数作为类的成员函数时,要求操作数左边必须是一个对象,而函数的参数可以是同类的对象也可以是普通的变量),则只需要一个参数。
谙忆
2021/01/21
5380
【C++】成员函数重载二元和一元运算符
【C++】运算符重载案例 - 字符串类 ④ ( 重载 双等号 == 运算符 | 重载 不等号 != 运算符 | 代码示例 )
韩曙亮
2023/10/15
3350
运算符重载之加号运算符重载
加号运算符重载 运算符重载:对已有运算符的重新定义,赋予其另一种功能,以适应不同的数据类型 #include<iostream> using namespace std; class pig{ public: int kilogram; //重量 int price; //价钱 //成员函数重载+号运算符 //pig operator+(pig& p) //{ // pig temp; // temp.kilogram = this->kilogram + p.kilogram;
大忽悠爱学习
2021/02/22
6730
运算符的重载
这是一串简单的类代码,比较重要的是sum()函数,注意到了参数是引用但是返回类型不是引用。将参数声明作为引用的目的只是为了提高效率,传递引用速度更快,使用的内存更少。 看一下输出内容QAQ
用户8247415
2021/04/13
5100

相似问题

如何重写运算符<

10

如何重写运算符?

20

重写运算符+

20

如何为多态重写运算符

30

Ruby重写运算符

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文