实现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;

 

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;

4.实体onsave代码: 

 

Code

 5.实现效果图:

 

 

实例实体下载路径:

https://files.cnblogs.com/zw3004/customizations.zip

 

posted @ 2009-03-31 13:24  zw3004  阅读(1041)  评论(8编辑  收藏  举报