首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从RC4升级到Aviarc3.6.0后,屏幕上的FieldName不能为空或未定义错误

从RC4升级到Aviarc3.6.0后,屏幕上的FieldName不能为空或未定义错误
EN

Stack Overflow用户
提问于 2012-09-24 08:48:03
回答 1查看 828关注 0票数 0

升级到Aviarc3.6.0后,我们在其中一个屏幕上看到上述错误。

屏幕上出现错误的部分:

代码语言:javascript
复制
<custom:record-table bottom="40" width="100%" left="0" top="0" dataset="account-ds" class="list" name="accountlist-rc" >
    <column width="0" display-field="AccountName"  header="Accounts" field2="AccountCode"  allow-sort="n" />
</custom:record-table>

注意,我们定制了记录表小部件,允许为每列指定两个额外的字段(field2和field3),因此这就是列中的field2的来源。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 08:48:03

在研究了允许为记录表的每一列指定多个字段所做的更改之后,我们看起来如下所示(在RecordTable.js的update方法中,从第670行开始):

代码语言:javascript
复制
var field = this._datasetRow.getFieldObject(column.attributes['display-field']);
var field2 = this._datasetRow.getFieldObject(column.attributes['field2']);
var field3 = this._datasetRow.getFieldObject(column.attributes['field3']);

var text = field.getValue();
var text2 = field2.getValue();
var text3 = field3.getValue();

由于屏幕上的列规范(问题中的代码片段)没有为field3属性part设置任何值

代码语言:javascript
复制
var field3 = this._datasetRow.getFieldObject(column.attributes['field3']);

失败并抛出错误。方法getFieldObject总是希望传递该值,即使它可能足够智能,也可以处理空值/未定义的值。

为了解决这个问题,代码被重构如下:

代码语言:javascript
复制
var field = this._datasetRow.getFieldObject(column.attributes['display-field']);
var text = field.getValue();
if (column.attributes['field2'] != null) {
    var field2 = this._datasetRow.getFieldObject(column.attributes['field2']);
    var text2 = field2.getValue(); 
}
if (column.attributes['field3'] != null) {
    var field3 = this._datasetRow.getFieldObject(column.attributes['field3']);
    var text3 = field3.getValue();
}

之后,小部件代码的自定义部分只需满足可能未定义的text2和text3属性值的需求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12557563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档