FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 4021|回复: 4
打印 上一主题 下一主题

Grid 小建议一条

[复制链接]
跳转到指定楼层
楼主
发表于 2012-3-30 17:32:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
建议:在Grid中,如果启用CheckBox复选框,最好给CheckBox绑定一个数据,比如像DataKeys绑定一个Id一样,
绑定了,就可以根据选中CheckBox的Value去操作,翻页后,也可以很容易的实现批量删除功能
我就是在这样的需求上卡到了,我翻页后,批量选择删除,竟然还是第一页的数据在操作
沙发
发表于 2012-3-30 20:48:45 | 只看该作者
if (Grid2.SelectedRowIndexArray != null && Grid2.SelectedRowIndexArray.Length > 0)
                {
                    for (int i = 0, count = Grid2.SelectedRowIndexArray.Length; i < count; i++)
                    {
                        int rowIndex = Grid2.SelectedRowIndexArray[i];
                        if (Grid2.AllowPaging && !Grid2.IsDatabasePaging)
                        {
                            rowIndex = Grid2.PageIndex * Grid2.PageSize + rowIndex;
                        }
                        foreach (object key in Grid2.DataKeys[rowIndex])
                        {
                              delete(Convert.ToString (key));
                        }
                    }

                    ExtAspNet.Alert.ShowInParent("删除成功!");
                }
                else
                {
                    ExtAspNet.Alert.ShowInParent("你没有选择行!");
                }

用这样的代码可以批量删除
板凳
发表于 2012-3-31 08:46:54 | 只看该作者
楼上的解释基本可以满足,需要说的是,有可能你选择了100条要删除的记录,现在删除了50条后网络断了,那么后50条是没法删除的。应该对 foreach (object key in Grid2.DataKeys[rowIndex])
                        {
                              delete(Convert.ToString (key));
                        }
加以改造,先取出所有选中项的key值,之后根据条件做批量删除。
地板
 楼主| 发表于 2012-3-31 09:43:53 | 只看该作者
yfen 发表于 2012-3-30 20:48
if (Grid2.SelectedRowIndexArray != null && Grid2.SelectedRowIndexArray.Length > 0)
                { ...

你这样可以,我之前没有判断是否分页,就报错了,唉,我大意了
5#
发表于 2012-4-2 09:55:22 | 只看该作者
DataKeys保存当前页所有行的键,SelectedRowIndexArray 取得选中的行,两者结合即可。
这跟GridView是一样的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-16 20:50 , Processed in 0.045540 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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