找回密码
 立即注册

QQ登录

只需一步,快速开始

qimeimeiqi

初级会员

12

主题

66

帖子

242

积分

初级会员

积分
242

微信认证勋章

qimeimeiqi
初级会员   /  发表于:2019-9-6 13:56  /   查看:2884  /  回复:3
本帖最后由 qimeimeiqi 于 2019-9-17 10:10 编辑

使用的是GrapeCity SPREAD for Windows Forms 12.0J

表中数据是通过database导入到表格中的,如果database中数据为o的情况下,想在sheetview中添加开始行,应该如何添加。
写了一些代码,但是这些代码只能应用于database中有数据的情况下。
图一数据为0的情况下,点击添加行按钮,会显示图二的错误。(图二意思为 System.IndexOutOfRangeException:'索引在数组边界之外。)

求帮助,谢谢。

private void BtnNew_Click(object sender, EventArgs e)
        {
            var rowIdx = spreadCodeMaster_Sheet1.Rows.Count;
            spreadCodeMaster_Sheet1.AddUnboundRows(rowIdx, 1);

            spreadCodeMaster_Sheet1.AddRowToDataSource(rowIdx, true);

            nrc++;

            chooselist.Add(0);

            r = spreadCodeMaster.ActiveSheet.Rows[rowIdx, rowIdx];
            r.Locked = false;

            if (spreadCodeMaster_Sheet1.Rows.Count == 1)
            {
                for (int j = 0; j < spreadCodeMaster_Sheet1.Columns.Count; j++)

                {
                    spreadCodeMaster.ActiveSheet.ColumnHeader.Rows[1].Visible = true;
                }
                btnSave.Enabled = true;
                btnDel.Enabled = true;
                btnEditor.Enabled = true;
                btnExcel.Enabled = true;
            }

            for (int j = 0; j < spreadCodeMaster_Sheet1.Columns.Count; j++)
            {
                var type = Convert.ToString(spreadCodeMaster_Sheet1.GetCellType(rowIdx, j));
                if (type != "CheckBoxCellType")
                {
                    spreadCodeMaster.ActiveSheet.SetActiveCell(rowIdx, j);
                    return;
                }
            }
        }


スクリーンショット (51).png スクリーンショット (52).png

3 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-9 14:55:57
来自 4#
我的意思是插入可以从spread插入,也可以从数据源插入,如果数据源插入了,form会同步更新。
如果通过spread插入的话参考如下代码

  1.             fpSpread1.ActiveSheet.AddUnboundRows(0, 1);
  2.             fpSpread1.ActiveSheet.AddRows(1, 1);
复制代码
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-9 09:58:07
沙发
如果是要给在有souce的情况下添加行,也可以直接给数据源添加一个空行。

            dt.Rows.Add(dt.NewRow());
回复 使用道具 举报
qimeimeiqi
初级会员   /  发表于:2019-9-9 12:29:38
板凳
dexteryao 发表于 2019-9-9 09:58
如果是要给在有souce的情况下添加行,也可以直接给数据源添加一个空行。

            dt.Rows.Add(dt.Ne ...

谢谢你的回复。
这边有数据的时候是可以添加行的,已经设定出来了。
我希望可以设定出,在使用spread时,database在没有数据的情况下,可以在spread上增加新行新数据,从而导入到database中。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部