2011-02-02 54 views
0

我有2个下拉列表来实现和XML文件如下:单独的XML文件,但需要填充2下拉列表

<?xml version="1.0" encoding="utf-8"?> 
<email> 
    <builderemail> 
    <builder id="1" value="[email protected]"> 
    </builder> 
    <builder id="2" value="Others"> 
    </builder> 
    </builderemail> 
    <manageremail> 
    <manager id="1" value="[email protected]"></manager> 
    <manager id="2" value="Others"></manager> 
    </manageremail> 
</email> 

我使用Visual Studio 2005和我试图将数据绑定每个通过下拉列表选择一个数据源。我的要求是建设者电子邮件的下拉列表和经理电子邮件的其他下拉列表中的一个。 我如何通过使用数据源配置向导来做到这一点?

问候

回答

0

你需要解析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; 
+0

喜mahantesh,我不明白解析XML。对不起,我对编程比较陌生 – jeremychan 2011-02-02 04:16:23

+0

通过解析xml提供的数据源,在列表中单独获取所有builderemail和manageremail。 – Mahantesh 2011-02-02 05:16:42

0

这些链接可能会帮助你

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>[email protected]</value> 
    </builder> 
    </builderemail> 
    <manageremail> 
    <manager> 
     <id>1</id> 
     <value>[email protected]</value> 
    </builder> 
    </manageremail> 
</email> 

希望这有助于