Hi Bill,
So happy to see you tried this and posted your solution.
I have in fact tried similar,
Here is what I tried :
- Have a UI-Only pick list to show list of addresses (Using only addressline-1 field)
- whenever this ui-only picklist changes , run a snippet to update a model called selectedAccount which is used to populate the selected account field editor.
Here is the XML of page:
row.created
row.updated
AddressList_ui
Address to Pick
Selected Address Details
var field = arguments[0],
value = arguments[1],
$ = skuid.$;
var addressModel = skuid.$M(‘Address’);
var addrRows = addressModel.getRows();
console.log('field = ',field);
console.log('value = ',value);
var picklistEntries = field.metadata.picklistEntries;
console.log('addresses ==== ',addrRows);
picklistEntries.length = 0;
$.each(addrRows, function(){
picklistEntries.push(
{
value: this.Name+this.Id,
label: this.Primary __c ? "Primary Address-"+this.Name : this.Name,
defaultValue: this.Primary__ c ? true : false,
active: true
}); //add Name field i.e. Address Line-1 Field Value as pick list entry
});
console.log(‘picklistEntries ===’,picklistEntries);
if(picklistEntries.length){
skuid.ui.fieldRenderers[field.metadata.displaytype]field.mode;
}
var params = arguments[0],
$ = skuid.$;
var selAddrModel = skuid.$M(‘Address’);
var selAddrRow = selAddrModel.getFirstRow(); //selectedAddressID_ui
var pickListValue = selAddrModel.getFieldValue(selAddrRow,‘AddressList_ui’);
console.log('FROM UTIL pickListValue = ',pickListValue);
console.log('pickListValue.substr(pickListValue.length-18) ====== ',pickListValue.substr(pickListValue.length-18));
if(pickListValue){
selAddrModel.updateRow(selAddrRow,
{
selectedAddressID_ui : pickListValue.substr(pickListValue.length-18)
});
}
But as you can see above, I got the ui-only pick list rendered twice.
Any ideas on how to get rid of this ?