【问题标题】:single XML file but need to populate 2 dropdownlist单个 XML 文件,但需要填充 2 个下拉列表
【发布时间】:2011-02-02 03:50:43
【问题描述】:

我有 2 个下拉列表要实现,xml 文件如下:

    <?xml version="1.0" encoding="utf-8"?>
<email>
  <builderemail>
    <builder id="1"  value="builder@xyz.com">
    </builder>
    <builder id="2" value="Others">
    </builder>
  </builderemail>
  <manageremail>
    <manager id="1" value="manager@xyz.com"></manager>
    <manager id="2" value="Others"></manager>
  </manageremail>
</email>

我正在使用 Visual Studio 2005,我尝试通过选择数据源来对每个下拉列表进行数据绑定。我的要求是建设者电子邮件的下拉列表之一和经理电子邮件的另一个下拉列表。 如何使用数据源配置向导来做到这一点?

问候

【问题讨论】:

    标签: c# asp.net xml data-binding visual-studio-2005


    【解决方案1】:

    这些链接可能会对您有所帮助

    http://www.codeproject.com/KB/aspnet/xmlboundlistcontrol.aspx

    http://dotnetspidor.blogspot.com/2009/04/bind-aspnet-dropdownlist-to-xml-file.html

    但您可能必须更改您的 xml 并将其结构化为

    <?xml version="1.0" encoding="utf-8"?>
    <email>
      <builderemail>
        <builder> 
          <id>1</id>  
          <value>builder@xyz.com</value>
        </builder>
      </builderemail>
      <manageremail>
        <manager> 
          <id>1</id>  
          <value>manager@xyz.com</value>
        </builder>
      </manageremail>
    </email>
    

    希望对你有帮助

    【讨论】:

    • 嗨,divi,我尝试了您发布的第二个链接,但是当我尝试在 xml 文件中键入第二个条目时遇到了问题。例如:&lt;builder&gt;&lt;id&gt;1&lt;/id&gt;&lt;value&gt;builder@xyz.com&lt;/value&gt;&lt;id&gt;2&lt;/id&gt;&lt;value&gt;Others&lt;/value&gt;
    • 嗨,Jeremy,你能试试 1builder@xyz.com2Others,这样每个builder只有1个id和1个value标签
    【解决方案2】:

    您需要解析xml并将builderemail和manageremail存储在列表中,然后作为数据源提供给下拉列表

    XmlDocument doc = new XmlDocument();
        doc.Load(@"sample.xml");
        XmlNodeList builderNodes =  doc.GetElementsByTagName("builderemail");
        XmlNodeList mangerNodes = doc.GetElementsByTagName("manageremail");
    
    
        List<string> builderMails = new List<string>();
        foreach (XmlNode node in builderNodes[0].ChildNodes)
        {
            builderMails.Add(node.Attributes["value"].Value);
        }
    
        List<string> mangerMails = new List<string>();
        foreach (XmlNode node in mangerNodes[0].ChildNodes)
        {
            mangerMails.Add(node.Attributes["value"].Value);
        }
    
    
         comboBox1.DataSource = builderMails;
            comboBox2.DataSource = mangerMails;
    

    【讨论】:

    • 嗨,mahantesh,我不懂解析 xml。抱歉,我对编程比较陌生
    • 通过解析xml提供的数据源,分别获取列表中的所有builderemails和manageremails。
    猜你喜欢
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 2017-04-06
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多