访问控件值的最有效方法是什么?

编程入门 行业动态 更新时间:2024-10-27 14:28:30
本文介绍了访问控件值的最有效方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在我必须访问控件值的两个选项中,哪个选项最有效?

Of the two choices I have to access the value of a control which is the most efficient?

getComponent("ControlName").getValue();

dataSource.getItemValue("FieldName");

我发现有时 getComponent 似乎没有返回当前值,但访问 dataSource 似乎更可靠.那么从性能的角度来看,使用哪一个有很大区别吗?

I find that on occasion the getComponent does not seem to return the current value, but accessing the dataSource seems to be more reliable. So does it make much difference from a performance perspective which one is used?

dataSource.getValue 似乎在我尝试过的任何地方都有效.但是,在使用 rowData 时,我似乎仍然需要执行 rowData.getColumnValue("Something").rowData.getValue("Something") 失败.

The dataSource.getValue seems to work everywhere that I have tried it. However, when working with rowData I still seem to need to do a rowData.getColumnValue("Something"). rowData.getValue("Something") fails.

推荐答案

两者都不是.最快的语法是dataSource.getValue("FieldName").getItemValue 方法仅对文档数据源可靠,而 getValue 方法不仅可用于通过视图数据源访问的视图条目(尽管在该上下文中您会将视图列的编程名称传递给它,该名称不一定与字段名称相同),但也可用于您开发或安装的任何自定义数据源(例如第三方扩展库).此外,如果您使用 getItemValue 代替,它会自动进行类型转换.

Neither. The fastest syntax is dataSource.getValue ("FieldName"). The getItemValue method is only reliable on the document data source, whereas the getValue method is not only also available on view entries accessed via a view data source (although in that context you would pass it the programmatic name of a view column, which is not necessarily the same name as a field), but will also be available on any custom data sources that you develop or install (e.g. third-party extension libraries). Furthermore, it does automatic type conversion that you'd have to do yourself if you used getItemValue instead.

即使在非常简单的页面上,dataSource.getValue("FieldName") 的速度也是 getComponent("id").getValue() 的 5 倍,因为,正如 Fredrik 所提到的,首先它必须找到组件,然后询问它的值是什么......在幕后,它只是询问数据源.因此,自己询问数据源总是更快.

Even on very simple pages, dataSource.getValue ("FieldName") is 5 times as fast as getComponent ("id").getValue (), because, as Fredrik mentions, first it has to find the component, and then ask it what the value is... which, behind the scenes, just asks the data source anyway. So it will always be faster to just ask the data source yourself.

注意:对应的写方法是dataSource.setValue("FieldName", "NewValue"),而不是dataSource.replaceItemValue("FieldName", "新值").两者都可以工作,但 setValue 也进行与 getValue 相同的类型转换,因此您可以将不严格符合旧 Domino Java API 的数据传递给它通常只是弄清楚需要将值转换为什么,以便 Domino 存储安全".

NOTE: the corresponding write method is dataSource.setValue ("FieldName", "NewValue"), not dataSource.replaceItemValue ("FieldName", "NewValue"). Both will work, but setValue also does the same type conversion that getValue does, so you can pass it data that doesn't strictly conform to the old Domino Java API and it usually just figures out what the value needs to be converted to in order to be "safe" for Domino to store.

更多推荐

访问控件值的最有效方法是什么?

本文发布于:2023-10-25 00:20:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1525403.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最有效   控件   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!