找回密码
 立即注册

QQ登录

只需一步,快速开始

xiaoaj

注册会员

10

主题

43

帖子

193

积分

注册会员

积分
193
xiaoaj
注册会员   /  发表于:2021-5-28 14:03  /   查看:5192  /  回复:11
1金币
本帖最后由 xiaoaj 于 2021-6-4 21:55 编辑

动态更改列的控件类型如何实现?类似以下语句
.Item("セット品区分").Editor = New GrapeCity.Win.ElTabelle.Editors.ButtonEditor("代替有り")
.Item("セット品区分").Editor = New GrapeCity.Win.ElTabelle.Editors.TextEditor


旧版本4.0的KeyDown事件在文本框编辑状态下响应,
但是在10.0文本框进入编辑状态下不响应KeyDown事件,
想获取到当前编辑状态下的控件,添加绑定KeyDown事件,
如何实现?

11 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-8 12:13:52
12#
好的,解决了就行
回复 使用道具 举报
xiaoaj
注册会员   /  发表于:2021-6-7 11:20:37
11#
sxyweiren 发表于 2021-6-7 10:30
这种只能根据业务需求来更改代码实现。

比如你这种,应该就是某种情况下可以编辑,另外一种情况设置成 ...

目前变通的做法是定义了一个按钮列,覆盖在原来单元格上,根据业务逻辑判断动态显示按钮列还是文本列,这样也能实现原有想要的业务逻辑
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2021-6-7 10:30:39
10#
动态更改列的控件类型如何实现?类似以下语句
.Item("セット品区分").Editor = New GrapeCity.Win.ElTabelle.Editors.ButtonEditor("代替有り")
.Item("セット品区分").Editor = New GrapeCity.Win.ElTabelle.Editors.TextEditor

这种只能根据业务需求来更改代码实现。

比如你这种,应该就是某种情况下可以编辑,另外一种情况设置成固定值。把ReadOnly设置成True就好了。
如果后续有点击动作的话,需要设定背景色,设定鼠标点击动作。做出Button的效果就行。

因为旧的ElTable就是一个表格,可以动态设定某个单元格的类型。但是MR10是一种基于模板的控件。单元格类型是以列为单位设定的。

如果项目很复杂,需要实现相同的效果,可以尝试Spread。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-31 11:20:32
9#
你好,这个目前没有办法支持
回复 使用道具 举报
xiaoaj
注册会员   /  发表于:2021-5-31 11:02:52
8#
Richard.Ma 发表于 2021-5-28 18:22
改列类型很简单var template = this.gcMultiRow1.Template;template.Row.Cells.RemoveAt(0);
template.Row ...

同一列不同行支持不同的列类型吗?根据您提示的代码,只能修改整个列的类型。目前的业务处理需要不同行不同列类型,比如第一行是文本第二行是按钮。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-28 18:22:27
7#
改列类型很简单var template = this.gcMultiRow1.Template;template.Row.Cells.RemoveAt(0);
template.Row.Cells.Insert(0, new TextBoxCell());
this.gcMultiRow1.Template = template;
回复 使用道具 举报
xiaoaj
注册会员   /  发表于:2021-5-28 16:24:47
6#

动态更改列的控件类型如何实现?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-28 16:17:27
地板
好的
回复 使用道具 举报
xiaoaj
注册会员   /  发表于:2021-5-28 15:35:48
板凳
本帖最后由 xiaoaj 于 2021-5-28 15:37 编辑
Richard.Ma 发表于 2021-5-28 14:59
可以用MultiRow上的EditingControlShowing事件

按照您提示的方法可以实现,但是由于没有RemoveHandler掉,多次进入后方法会被掉好几次。哦,看到了,先remove再添加。可以了
回复 使用道具 举报
xiaoaj
注册会员   /  发表于:2021-5-28 15:22:17
沙发
Richard.Ma 发表于 2021-5-28 14:59
可以用MultiRow上的EditingControlShowing事件

动态更改列的控件类型如何实现?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部