找回密码
 立即注册

QQ登录

只需一步,快速开始

( ̄- ̄)

注册会员

11

主题

26

帖子

87

积分

注册会员

积分
87
( ̄- ̄)
注册会员   /  发表于:2022-1-17 17:46  /   查看:3737  /  回复:8
1金币

在执行完单元格合并之后allowAddNew属性不生效了
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

这个目前没有办法实现,因为新增行的功能是写死的,没有办法同时readonly和新增行 我建议你可以自定义一个表单来输入新行数据,然后再通过代码插入 比如通过popup控件,参考下面的示例,通过一个新建按钮弹出 https://demo.grapecity.com.cn/wi ... opupEditors/angular

8 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-17 17:46:31
来自 8#
这个目前没有办法实现,因为新增行的功能是写死的,没有办法同时readonly和新增行
我建议你可以自定义一个表单来输入新行数据,然后再通过代码插入

比如通过popup控件,参考下面的示例,通过一个新建按钮弹出
https://demo.grapecity.com.cn/wi ... opupEditors/angular

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-17 18:13:10
2#
本帖最后由 Richard.Ma 于 2022-1-17 20:14 编辑

我这边用这个在线demo测试了一下并没有重现问题https://www.grapecity.com/wijmo/ ... ingRemoving/angular

仅改写了app.component.html ,加上了allowmerging 以及列定义


  1. <div class="container-fluid">
  2.     <label>
  3.         newRowAtTop
  4.         <input [(ngModel)]="grid.newRowAtTop" type="checkbox">
  5.     </label>
  6.     <wj-flex-grid #flex [allowMerging]="'Cells'" [allowAddNew]="true"  [(itemsSource)]="data">

  7.         <wj-flex-grid-column [binding]="'country'" [header]="'Country'" [allowMerging]=true></wj-flex-grid-column>
  8.         <wj-flex-grid-column [binding]="'sales'" [header]="'Sales'" [format]="'n2'"></wj-flex-grid-column>
  9.         <wj-flex-grid-column [binding]="'expenses'" [header]="'Expenses'" [format]="'n2'"></wj-flex-grid-column>
  10.         <wj-flex-grid-column [binding]="'active'" [header]="'Active'" [allowMerging]=true></wj-flex-grid-column>
  11.         
  12.     </wj-flex-grid>
  13. </div>
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
( ̄- ̄)
注册会员   /  发表于:2022-1-18 11:13:26
3#
Richard.Ma 发表于 2022-1-17 18:13
我这边用这个在线demo测试了一下并没有重现问题https://www.grapecity.com/wijmo/demos/Grid/Rows/AddingRe ...

尝试了一下,发现是readonly属性导致的,设置为true的时候追加行无效了,那现在如果我想数据不可编辑,然后还想追加行的话,还有什么属性可以实现
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-18 11:30:35
4#
好的,如果你设置为true的话,通过界面无法追加行是正常的(追加了也无法编辑)

当然通过后台代码是可以正常追加行的
  1.         this.flex.collectionView.addNew();
  2.         this.flex.collectionView.commitNew()
复制代码
回复 使用道具 举报
( ̄- ̄)
注册会员   /  发表于:2022-1-18 13:51:20
5#
Richard.Ma 发表于 2022-1-18 11:30
好的,如果你设置为true的话,通过界面无法追加行是正常的(追加了也无法编辑)

当然通过后台代码是可以 ...

啊懂了,那这样的话,我的需求就是这个grid上面正常显示数据(不可编辑),最后面是可以继续登数据的(可编辑),目前就像您说的,要么都只读,要么都可编辑,想定的时候只有登录的那行其中几个字段可以输入编辑然后登录像Demo的话,最后想实现这种效果这两个合并的项目是可以输入的,但是没合并的那些项目正常显示(会预先设定好没合并的项目的登录值)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
( ̄- ̄)
注册会员   /  发表于:2022-1-18 14:08:40
7#
( ̄- ̄) 发表于 2022-1-18 13:51
啊懂了,那这样的话,我的需求就是这个grid上面正常显示数据(不可编辑),最后面是可以继续登数据的(可 ...

尝试过了demo里的flex.beginningEdit.addHandler和flex.cellEditEnding.addHandler,但是调试的时候断点都没走进去
回复 使用道具 举报
( ̄- ̄)
注册会员   /  发表于:2022-1-19 09:50:15
9#
Richard.Ma 发表于 2022-1-18 11:30
好的,如果你设置为true的话,通过界面无法追加行是正常的(追加了也无法编辑)

当然通过后台代码是可以 ...

现在整体readonly设为false了,单独给某些项目设置只读属性,最下面就是按照上面说的addNew()方法追加的,但是现在,不知道怎么添加opD和GpD下面的空白格的数据,而且每次双击opD和GpD下面的空白格的时候会自动追加一行变成
let view = this.test.addNew()
view.opeNos = 'opD'
view.equipmentGroup = 'GpD'


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-19 12:47:16
10#
我不太确定你现在想要问什么

每次双击opD和GpD下面的空白格的时候会自动追加一行,这个你是自己加了什么事件之类的吧

你现在的需求是什么呢?如果还是上面提到的想要原来的行只读,新行可编辑,这个是没有办法实现的,

如果你这里目前是遇到其他的问题,建议发一个新贴咨询

评分

参与人数 1满意度 +5 收起 理由
( ̄- ̄) + 5

查看全部评分

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