请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

HNA_fengjie

论坛元老

39

主题

97

帖子

1万

积分

论坛元老

积分
14189

活字格认证

HNA_fengjie
论坛元老   /  发表于:2011-11-17 10:23  /   查看:4160  /  回复:3
当我点击delete按钮的时候能否一次选中多行,将这多行全部删除?
12695477182624.png

3 个回复

正序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-11-18 13:36:00
地板
实现方法是将客户端选择的行保存起来,然后传递到服务端进行批量删除操作。选择的行提供了两种保存方法:一种是当着Command参数CommandArgument传递到服务端(其实CommandArgument是一个Point类型的变量,可能这种保存方法不是十分容易理解);另一种方法是将选择的行保存在隐藏字段中,然后自服务端直接从隐藏字段中取值。

代码如下: Spread_Web_Demo.zip (14.98 KB, 下载次数: 73)
回复 使用道具 举报
HNA_fengjie
论坛元老   /  发表于:2011-11-18 10:46:00
板凳

回复 2# dof 的帖子

这个方法性能太差了,如果我有200行数据选中20行删除的话,页面就会卡死!!!!!!能不能提供其他的方法
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-11-17 11:13:00
沙发
第一步:重写原有的Delete方法,在服务端中为Delete.onclick指定自己的MyDelete方法
  1.         protected override void Render(HtmlTextWriter writer)
  2.         {
  3.             WebControl delButton = FpSpreadMonthExecution.FindControl("Delete") as WebControl;
  4.             if (delButton != null)
  5.             {
  6.                 delButton.Attributes.Add("onclick", "MyDelete()");
  7.             }
  8.             base.Render(writer);
  9.         }
复制代码
第二步:在页面中添加MyDelete方法的实现
  1.     <script language="javascript" type="text/javascript">
  2.         function MyDelete() {
  3.             var ss = FpSpread("FpSpreadMonthExecution");
  4.             if (ss.GetSelectedRange().type = "Row") {
  5.                 var rowstart = ss.GetSelectedRange().row
  6.                 var rowcount = ss.GetSelectedRange().rowCount
  7.                 for (var row = rowstart + rowcount - 1; row >= rowstart; row--) {
  8.                     ss.ActiveRow = row;
  9.                     ss.Delete();
  10.                 }
  11.             }
  12.         }
  13.     </script>
复制代码
以上是一个简约代码,详细逻辑可根据你们的业务已经修改
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部