none
关于动态绑定picklist的问题 RRS feed

  • 问题

  • 大家好,我刚刚学习dynamics,现在我想做一个动态绑定picklist的例子。

    可是我没有这方面的经验,找了很长时间也没有找到相对应的例子。

    是否能做一个实体,用这个实体绑定数据库数据了,然后再画面上是用这个实体来实现动态绑定picklist数据呢?请各位大虾们指教,或者有好的动态绑定实例帮助我。

    谢谢。


    new dyanmics
    2010年6月10日 16:01

全部回复

  • 求回复,阿门~~~
    new dyanmics
    2010年6月11日 1:26
  • 如果你真要想和其它实体关联的话可以考虑用lookup啊,为什么非得用picklist?


    CRM----BEST
    2010年6月13日 5:39
  • lookup能实现下拉列表的功能么?
    new dyanmics
    2010年6月18日 8:30
  • 我有一个用Picklist读取XML的例子:

     

    <?xml version="1.0" encoding="utf-8" ?>
    <Section>
      <type1>
        <item>item1</item>
        <item>item2</item>
        <item>item3</item>
      </type1>
      <type2>
        <item>item4</item>
        <item>item5</item>
        <item>item6</item>
      </type2>
    </Section>
    
    
    /*
    Form.onLoad() event
    GetItems() is a global function to get section's list items based on type's selection
    typeValue: picklist1's DataValue
    section: picklist2(object)
    sectionText: picklist2.SelectedText
    */
    
    GetItems = function(typeValue, section, sectionText)
    {
      //clean the section object
      section.length = 0;
    
      //it is the index of picklist2.SelectedText in XML file
      var sectionTextIndex = 0;
    
      //get the typeName, used for XML node
      var typeName = 0;
    
      switch(typeValue)
      {
        case "1" : typeName = "type1"; break;
        case "2" : typeName = "type2"; break;
        case "0" : return;
      }
    
      //load XML file
      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async = false;
      xmlDoc.load("/section.xml");
    
      //get all items under this type
      xmlDoc = xmlDoc.getElementsByTagName(typeName)[0];
      var items = xmlDoc.getElementsByTagName('item');
    
      //insert all items into section object
      for(var i=0; i<items.length; i++)
      {
        section.AddOption(items(i).firstChild.nodeValue, i+1);
        if((sectionText != null)&&(sectionText.DataValue == items(i).firstChild.nodeValue))
        {
          sectionTextIndex = i+1;
        }
      }
    
      return sectionTextIndex;
    }
    
    GetPicklist(crmForm.all.new_type1, crmForm.all.new_section1, crmForm.all.new_section1text);
    
    function GetPicklist(type, section, sectionText)
    {
      if(sectionText.DataValue != null)
      {
        //select the right one
        section.DataValue = GetItems(type.DataValue, section, sectionText);
      }
    }
    
    /*
    Form.onSave() event, save the current new_section1's selectedText
    Becasue we need to add this option to new_section1 on Form.onLoad()
    */
    
    SetPicklist(crmForm.all.new_section1 , crmForm.all.new_section1text);
    
    function SetPicklist(section, sectionText)
    {
      if(section.SelectedText != "")
      {
        sectionText.DataValue = section.SelectedText;
        section.length = 0;
      }
    }
    
    /*
    new_type1.onChange() event to call GetItem() funciton, passing new_type1.DataValue and new_section1, sectionText as parameters
    */
    if(crmForm.all.new_type1.DataValue != null)
    {
      GetItems(crmForm.all.new_type1.DataValue, crmForm.all.new_section1, null);
    }
    else
    {
      crmForm.all.new_section1.options.length = 0;
    }
    

     


    Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com, http://www.mscrm.cn
    2010年6月21日 8:42
    版主