实现partylist效果(II)
上次给大家介绍了一种实现partylist的方法,回头看了一下,感觉还是挺复杂的。(当时因为有特殊的需求所以就复杂了)。呵呵,这回介绍一个简单的办法。废话少说,开始正文。
当然了,原理还是一样的,就是将lookup中选的数据都存储到一个nvarchar(500)类型的字段中,在lookup中什么数据都不存储,只是做为一个给用户的样式来看。
1.创建两个属性:new_specific_modelsid--Lookup类型(这个lookup关联对象随便建立,是不影响的。因为这里面数据始终都是空的,除了用户这个实体不能建立关联。)
new_infoparticular--nvarchar(500)类型
2.在实体onload中插入代码:
crmForm.all.new_specific_modelsid.setAttribute("lookuptypes", "1,2");
crmForm.all.new_specific_modelsid.setAttribute("lookupstyle", "multi");
crmForm.all.new_specific_modelsid.setAttribute("lookuptypeIcons", "/_imgs/ico_16_1.gif:/_imgs/ico_16_2.gif");
crmForm.all.new_specific_modelsid.setAttribute("lookuptypenames", "account:1,contact:2");
crmForm.all.new_specific_modelsid.className="ms-crm-Lookup-Party";
crmForm.all.new_infoparticular_c.style.display="none";
crmForm.all.new_infoparticular_d.style.display="none";
var bccField = crmForm.all.new_specific_modelsid;
var strBcc=crmForm.all.new_infoparticular.DataValue;
if(strBcc!=null)
{
var strField=strBcc.split(";#");
var strArray = new Array();
var lookupItem = new Array();
for (i=0; i<strField.length; i++)
{
if (strArray[0]!=""){
strArray=strField[i].split("*#");
lookupItem[i]=new LookupControlItem (strArray[0], strArray[1], strArray[2],null,null,null,null);
}
}
}
bccField.DataValue=lookupItem;
crmForm.all.new_specific_modelsid.setAttribute("lookupstyle", "multi");
crmForm.all.new_specific_modelsid.setAttribute("lookuptypeIcons", "/_imgs/ico_16_1.gif:/_imgs/ico_16_2.gif");
crmForm.all.new_specific_modelsid.setAttribute("lookuptypenames", "account:1,contact:2");
crmForm.all.new_specific_modelsid.className="ms-crm-Lookup-Party";
crmForm.all.new_infoparticular_c.style.display="none";
crmForm.all.new_infoparticular_d.style.display="none";
var bccField = crmForm.all.new_specific_modelsid;
var strBcc=crmForm.all.new_infoparticular.DataValue;
if(strBcc!=null)
{
var strField=strBcc.split(";#");
var strArray = new Array();
var lookupItem = new Array();
for (i=0; i<strField.length; i++)
{
if (strArray[0]!=""){
strArray=strField[i].split("*#");
lookupItem[i]=new LookupControlItem (strArray[0], strArray[1], strArray[2],null,null,null,null);
}
}
}
bccField.DataValue=lookupItem;
3.new_specific_modelsid的onchange事件插入代码:
var infoparticuler='';
if(crmForm.all.new_specific_modelsid.DataValue!=null)
{
var lookupData = new Array();
lookupData=crmForm.all.new_specific_modelsid.DataValue;
for(var i=0;i<lookupData.length;i++)
{
infoparticuler+=lookupData[i].id+"*#";
infoparticuler+=lookupData[i].type+"*#";
infoparticuler+=lookupData[i].name +";#";
}
}
crmForm.all.new_infoparticular.DataValue=infoparticuler;
if(crmForm.all.new_specific_modelsid.DataValue!=null)
{
var lookupData = new Array();
lookupData=crmForm.all.new_specific_modelsid.DataValue;
for(var i=0;i<lookupData.length;i++)
{
infoparticuler+=lookupData[i].id+"*#";
infoparticuler+=lookupData[i].type+"*#";
infoparticuler+=lookupData[i].name +";#";
}
}
crmForm.all.new_infoparticular.DataValue=infoparticuler;
4.实体onsave代码:
![](/Images/OutliningIndicators/ContractedBlock.gif)
5.实现效果图:
实例实体下载路径:
https://files.cnblogs.com/zw3004/customizations.zip