zoukankan      html  css  js  c++  java
  • Microsoft Dynamics 4.0里picklist四级联动外加多选

    客户要求picklist能四级联动并且还要在第一级里选好某一项后其他几级多选实现效果如图:

    图一:

    图二:

    多选的效果是参照jimwang的多选改的 代码如下:

    if(class1 == 1)
    {
    crmSDKSample.filterChildField("new_class1", "new_class3");
    crmSDKSample.filterChildField("new_class1", "new_class4");
    if( PL != null && PLV != null )
    {
    
        if(document.getElementById('picklist1')!=null)
       {
    
            var  divlist =document.getElementById('picklist1');
            var   lnodes = divlist.childNodes;
            for (i=0;i<lnodes.length;i++)
            {
               if(lnodes[i].nodeName=='LABEL')
              {
                  divlist.removeChild(lnodes[i]);
               }
            }
            for (i=0;i<lnodes.length;i++)
            {
                  if(lnodes[i].nodeName=='INPUT')
                  {
                      if(lnodes[i].type=='checkbox')
                     {
                           divlist.removeChild(lnodes[i]);
                     }
                 }
              }
              for (i=0;i<lnodes.length;i++)
              {
                 if(lnodes[i].nodeName=='BR')
                {
                   divlist.removeChild(lnodes[i]);
                 }
              }
               for (i=0;i<lnodes.length;i++)
              {
                 if(lnodes[i].nodeName=='BR')
                {
                   divlist.removeChild(lnodes[i]);
                 }
              }
              for (i=0;i<lnodes.length;i++)
              {
                 if(lnodes[i].nodeName=='BR')
                {
                   divlist.removeChild(lnodes[i]);
                 }
              }
    
    }
    else
    {
        // Create a DIV container 
      var addDiv = document.createElement("<div id='picklist1' style='overflow-y:auto; height:80px;border: 1px #6699cc solid;background-color: #ffffff;' />");
      PL.parentNode.appendChild(addDiv);
    
    }
    
       PL.style.display = "none";
      //PLV.style.display = "none";
      //crmForm.all.new_class2value_c.style.display = "none"; 
      //crmForm.all.new_class2value_d.style.display = "none"; 
    
      
        //debugger;
      // Initialise checkbox controls
      for( var i = 1; i < PL.options.length; i++ )  
      { 
        var pOption = PL.options[i];
        if( !IsChecked1( pOption.text ) )
          var addInput = document.createElement("<input type='checkbox' style='border:none; 25px; align:left;' />" );
        else
          var addInput = document.createElement("<input type='checkbox' checked='checked' style='border:none; 25px; align:left;' / >" );
      
        var addLabel = document.createElement( "<label  id=lab1"+ i +"/>");
        addLabel.innerText = pOption.text;
      
        var addBr = document.createElement( "<br />");
      
        PL.nextSibling.appendChild(addInput);
        PL.nextSibling.appendChild(addLabel);
        PL.nextSibling.appendChild(addBr);
      }
      
      // Check if it is selected
      function IsChecked1( pText )
      {
        if(PLV.value != "")
        {
          var PLVT = PLV.value.split("||");
          for( var i = 0; i < PLVT.length; i++ )  
          { 
            if( PLVT[i] == pText )
              return true;
          }  
        }
        return false;
      }
      
      // Save the selected text, this filed can also be used in Advanced Find
      //crmForm.attachEvent( "onsave" , OnSave);
      function OnSave()
      {
        PLV.value = "";
        var getInput = PL.nextSibling.getElementsByTagName("input");
      
        for( var i = 0; i < getInput.length; i++ )  
        {   
          if( getInput[i].checked)
          {
            PLV.value += getInput[i].nextSibling.innerText + "||";
          }
        }  
      } 
    }
    }
    
    
    
    

    主要加一些代码,在第一级选其他项是移走多选效果 ,还有jimwang的blog里是把多选结果存在隐藏字段里,我的也是只是在保存的代码放在OnSave事件里没在此处启用。

    至于picklist如何四级联动在CRMSDK里已经有很好的例子啦。

  • 相关阅读:
    uva11235 FrequentValues (ST表)
    hdu5449 Robot Dog (树形dp+倍增lca)
    [BZOJ1637][Usaco2007 Mar]Balanced Lineup
    [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理
    Luogu1119灾后重建
    [APIO2012]派遣
    [HNOI2004]宠物收养场
    [USACO14DEC] 驮运Piggy Back
    [USACO14JAN]滑雪等级Ski Course Rating
    [CODEVS3366] 矿石
  • 原文地址:https://www.cnblogs.com/ww5552031/p/1885669.html
Copyright © 2011-2022 走看看