0

在 Dashcode 中,如果我有一个数据源,例如,有 2 个名为“FirstName”和“Last Name”的字段,我如何将这 2 个字段连接到列表视图中的一个文本字段中?

我相当肯定它必须使用值转换器,所以假设我将“名字”字段分配给文本字段,并添加一个值转换器......然后我如何将“姓氏”值添加到“值” ' 变压器中的变量。

我确定这与 dashcode.getDataSource 和 valueForKeyPath 有关,我认为我已经接近解决方案,但这一切似乎有点笨拙,所以任何帮助将不胜感激。

4

2 回答 2

4

正确 - 您需要使用价值转换器。

在 Transformer 中,您将编写如下代码:

itemDescription = Class.create(DC.ValueTransformer,{
    transformedValue: function(value){

    var itemDataSource = dashcode.getDataSource('itemsList'); // The Data Source Name here
    var lastName = itemDataSource.selection().valueForKey('lastName'); // Presumes you have a field called lastName
    return value + " " + lastName;
    }
});

希望这会有所帮助-我为此奋斗了一天!!!

于 2011-05-06T17:31:31.323 回答
0

对于未来的谷歌员工,因为绝对没有任何关于此的文档:

在详细视图中连接来自同一数据源的两个字段时:

XML

<?xml version="1.0" encoding="utf-8"?>
<immobilier>    
  <bien>
    <ID>1453</ID> 
    <Titre>Maison / Villa F4</Titre>
    <Ville>Sainte Clotilde</Ville>
    <Quartier>BRETAGNE</Quartier>
  </bien>
</immobilier>

要结合 Ville 和 Quartier 字段,请创建一个值转换器,如下所示:

mapAdresse = Class.create(DC.ValueTransformer,{
    transformedValue: function(value){

        if (value.trim() != "") {
            //Replace immoListe with your source name
            var itemDataSource = dashcode.getDataSource('immoListe');

            //THIS IS THE MOST IMPORTANT : HOW TO FIND THE CURRENTLY SELECTED ITEM INDEX 
            var selectedIndex = document.getElementById('list').selectedIndex; 

            //Use the selectedIndex to find the record in the datasource
            var quartier = itemDataSource.selection().valueForKey("bien")[selectedIndex].valueForKey("Quartier");

            //Concatenate to your liking
            if (quartier.trim() != "") value = value + ", "+ quartier;
        }

        return value;
    }
});

为什么这在任何地方都没有记录?打败我 !!

于 2012-07-11T15:07:39.093 回答