找回密码
 立即注册

QQ登录

只需一步,快速开始

wangwuliSpread
论坛元老   /  发表于:2014-11-17 22:45  /   查看:5779  /  回复:5
删除.png
[页面效果图]


删除后台代码.png
【后台代码】
我在这里使用FpSpread1.Sheets[0].Rows.Remove(i, 0); 方法删除行
代码运行成功了,但是页面单选框选中的行并没有删除掉。
------------------------------------------------------------------------------------------------------------------------------------------------------         /// <summary>
        /// 删除行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btndelSpRow_Click(object sender, EventArgs e)
        {
            // 同步获得spread表格修改的数据
            this.FpSpread1.SaveChanges();

            for (int i = 0; i < FpSpread1.Sheets[0].RowCount; i++)
            {     
                object value=FpSpread1.Sheets[0].Cells[i, 0].Value;
                if(value!=null)
                {
                    if (value.ToString() =="1")
                    {
                        FpSpread1.Sheets[0].Rows.Remove(i, 0);
                    }
                }
            }
        }
------------------------------------------------------------------------------------------------------------------------------------------------------

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-11-18 12:15:00
沙发
回复 1楼wangwuliSpread的帖子

可以 Debug 一下行索引i对应的是否为选中行。如果是可以尝试在循环执行结束后调用FpSpread1.SaveChanges() 方法,看能否解决问题。

评分

参与人数 1满意度 +5 收起 理由
wangwuliSpread + 5 good

查看全部评分

回复 使用道具 举报
wangwuliSpread
论坛元老   /  发表于:2014-11-21 16:21:00
板凳
Debug 一下行索引i对应的是否为选中行 什么意思?
回复 使用道具 举报
wangwuliSpread
论坛元老   /  发表于:2014-11-21 17:05:00
地板
/// <summary>
        /// 删除行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btndelSpRow_Click(object sender, EventArgs e)
        {
            // 同步获得spread表格修改的数据
            this.FpSpread1.SaveChanges();
            for (int i = 0; i < FpSpread1.Sheets[0].RowCount; i++)
            {     
                object value=FpSpread1.Sheets[0].Cells[i, 0].Value;
                if(value!=null)
                {
                    if (value.ToString() =="1")
                    {
                        FpSpread1.Sheets[0].Rows.Remove(i, 1);
                        FpSpread1.SaveChanges();
                    }
                }
            }
        }

我使有 for 循环调用 .Remove(i, 1); 方法进行删除为什么每一次只删除了一行数据?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-11-21 18:20:00
5#
回复 4楼wangwuliSpread的帖子

Rows.Remove 方法,第一个参数代表删除行的起始索引,第二个参数代码删除行数。如果希望一次性删除多行数据调整第二个参数即可。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-11-24 20:18:00
6#
回复 4楼wangwuliSpread的帖子

附件是实现删除选中 CheckBox 所在行的例子,请参考:

14346.zip (1.92 KB, 下载次数: 410)

评分

参与人数 1满意度 +5 收起 理由
wangwuliSpread + 5 Good

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部