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

QQ登录

只需一步,快速开始

xiaoaj

注册会员

10

主题

43

帖子

193

积分

注册会员

积分
193
xiaoaj
注册会员   /  发表于:2021-6-16 20:54  /   查看:2435  /  回复:5
10金币
本帖最后由 xiaoaj 于 2021-6-16 20:58 编辑

通过DataSource属性绑定数据时,发现会执行CellEnter事件(存在设置背景色代码),导致表格初始化数据的时候单元格背景色由于执行了CellEnter事件被更改了。
现在不想在数据绑定时执行CellEnter事件,如何解决?




最佳答案

查看完整内容

[code] this.gcMultiRow1.ViewMode = ViewMode.Display; this.gcMultiRow1.DataSource = dt;[ this.gcMultiRow1.DataSourceChanged += (s, e) => { Debug.WriteLine("data source changed"); this.gcMultiRow1.ViewMode = ViewMode.Default; };/code] 因为数据源变了,重新刷新,然后默认就会选中第一个cell,所以 ...

5 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-16 20:54:30
来自 2#
[code]
            this.gcMultiRow1.ViewMode = ViewMode.Display;
            this.gcMultiRow1.DataSource = dt;[
            this.gcMultiRow1.DataSourceChanged += (s, e) =>
            {
                Debug.WriteLine("data source changed");
                this.gcMultiRow1.ViewMode = ViewMode.Default;
            };/code]


    因为数据源变了,重新刷新,然后默认就会选中第一个cell,所以发了这个事件

    可以这样子绕一下

    在设置datasource之前,先把viewmode改一下,然后等待data source修改了,在事件的回调里把viewmode改回去,这样子就不会在数据加载完,设置那个cell了
回复 使用道具 举报
xiaoaj
注册会员   /  发表于:2021-6-17 12:53:13
3#
Richard.Ma 发表于 2021-6-17 12:26
[code]
            this.gcMultiRow1.ViewMode = ViewMode.Display;
            this.gcMultiRow1.Data ...

非常感谢,可以解决了
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-17 13:36:27
4#
不客气
回复 使用道具 举报
xiaoaj
注册会员   /  发表于:2021-6-18 15:57:14
5#

不通过DataSource绑定数据,通过RowCount改变行数的时候,也还会进CellEnter事件,ViewMode的方式不能有效屏蔽,如何屏蔽掉?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-18 18:53:30
6#
xiaoaj 发表于 2021-6-18 15:57
不通过DataSource绑定数据,通过RowCount改变行数的时候,也还会进CellEnter事件,ViewMode的方式不能有 ...

这边需要调研一下,预计下周给您答复。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部