Dashcode - 如何合并来自一个数据源的两个值
问题描述:
在Dashcode中,如果我有一个数据源,例如有两个名为'FirstName'和'Last Name'的字段,我如何将两个字段连接成一个文本在列表视图中的字段?Dashcode - 如何合并来自一个数据源的两个值
我相当肯定它必须使用值转换器,所以说我将'FirstName'字段分配给文本字段,然后添加一个值转换器...然后如何添加'LastName'值到变压器中的'数值'变量。
我确定这是与dashcode.getDataSource和valueForKeyPath,我认为我接近解决方案,但它似乎有点难看,所以任何帮助将不胜感激。
答
正确 - 您需要使用Value 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;
}
});
希望这有助于 - 我与此奋战了一天!
答
对于未来的Google,因为是绝对没有文档的任何地方这一点:
当详细视图连接两个领域来自同一数据源:
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;
}
});
为什么这不记录在任何地方?打败我 !!
如果你想在列表中有2个字段(如Master/Detail的DashCode splitview Master侧),那么你需要使用2个独立的字段。这在这种情况下不起作用。 – ferdil 2011-05-06 19:48:55