在Dashcode中,如果我有一个dataSource,例如,有2个名为'FirstName'和'Last Name'的字段,我如何将2个字段连接到列表视图中的一个文本字段?
我很确定必须使用值变换器,所以说我将'FirstName'字段分配给文本字段,然后添加值变换器...我如何将'LastName'值添加到变压器中的'value'变量。
我确信这与dashcode.getDataSource和valueForKeyPath有关,我认为我接近解决方案,但这一切似乎有点笨拙,所以任何帮助都会非常感激。
答案 0 :(得分:4)
正确 - 您需要使用Value Transformer。
在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;
}
});
希望这会有所帮助 - 我和它争斗了一天!!!
答案 1 :(得分:0)
对于未来的googlers,因为在任何地方都没有关于此的文档:
在详细视图中连接两个字段来自同一个数据源时:
<强> 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;
}
});
为什么没有在任何地方记录?打败我!!