lwt 发表于 2022-12-21 11:53:20

弹出传值到组件不能触发命令

看标题

David.Zhong 发表于 2022-12-21 12:17:46

大佬,我看你是直接把值传递给组件的,首先需要给组件中的文本框绑定属性设置为单元格的值,

此时,值变更原因是bingding,把命令也调整一下,就正常了。

可以分析下日志,

lwt 发表于 2022-12-21 13:23:16

本帖最后由 lwt 于 2022-12-21 13:40 编辑

绑定是绑定数据库字段的难道我一直理解错了?怎么到这里就是绑定单元格了呢?和页面的策略不一样?我不希望绑定数据库时执行,我的需求是传值和手输时执行不能在绑定时执行,不能因为传值不执行就让我改为绑定执行。如果按你的改为绑定执那么这个组件我绑定数据库段就会出现图示效果。

David.Zhong 发表于 2022-12-21 13:41:43

给组件传值的时候,是传给组件本身的,并不会直接传递到组件内的元素里面,比如说组件内的文本框。
所以,如果需要组件内的元素显示组件的值,那么就需要在绑定属性那块设置为单元格的值,这里的单元格的值就是组件单元格的值的意思。
并且如字面意思,这里是绑定的单元格的值,所以理解为banding看起来也很合理。
我不希望绑定数据库时执行,只希望传值和手输时执行。
关于大佬的问题,我不是很理解目前的策略对这个实现大佬的这个需求有什么影响。
大佬可以具体说一下大佬考虑的点在哪吗?

lwt 发表于 2022-12-21 13:43:42

本帖最后由 lwt 于 2022-12-21 13:47 编辑

David.Zhong 发表于 2022-12-21 13:41
给组件传值的时候,是传给组件本身的,并不会直接传递到组件内的元素里面,比如说组件内的文本框。
所以, ...
我要传值到组件中再触发命令,且不希望绑定时执行,如何做?组件对于我来讲就是原来的文本框,现在改为组件文本框。

Grayson.Shang 发表于 2022-12-21 13:54:53

大佬您好,我这边看了一下您的demo,您的设计没有问题,之所以没有触发命令的的原因是,文本框从无到有可能不算是,值变更,你试试,给文本框设置一个缺省值,这样就可以正常使用~

lwt 发表于 2022-12-21 14:16:32

还让我回复点什么呢?

Grayson.Shang 发表于 2022-12-21 15:05:50

楼主这是已经完成99%,就剩最后临门一脚了:lol

lwt 发表于 2022-12-21 16:54:28

怎么解决啊,默认了也没有用?你还是当bug报吧。一看就是bug

David.Zhong 发表于 2022-12-21 17:30:19

梁总,我懂你意思了。

不过我得先和梁总说一下我的看法,你先看看有没有道理。

如果没有组件,在页面层面来说,如果修改一个文本框的值,那么它的值变更原因很好理解,
因为文本框是一个可输入的单元格类型,所以会有值变更原因的上下文,
如果是因为在页面上给文本框设置了绑定字段,通过绑定字段触发,毫无疑问算banding,用户手动输入,毫无疑问算userInput。


再来看页面上的组件,相同是也需要在页面层面来理解,
组件作为一个整体放在页面上,它并不是一个可输入的单元格类型,所以在组件给组件的命令设置中,根本就不存在值变更原因的上下文。


再来看组件本身,
组件中的文本框,是怎么和外部关联值的呢,可以通过绑定组件单元格的值或者绑定组件的属性,

归根结底,也是用的绑定的概念。

至于在页面中给组件整体设置的是数据绑定还是页面传递,作为组件内部的文本框是感知不到的,不管外部是如何给组件整体赋值,组件内的文本框,只会知道自己是通过绑定的组件单元格的值或者绑定的组件的属性值。

针对大佬的问题,其实有一个非常简单的方案,就是给组件设置一个属性,用这个属性记录组件的值变化的原因,当使用页面跳转命令时,既然组件自己不知道,那么告诉组件一声呗。




页: [1] 2
查看完整版本: 弹出传值到组件不能触发命令