2011-05-01 71 views
0

我需要做一個下拉列表從XML文件結合兩個領域...結合了asp.net下拉列表兩個字段

XML文件:

<?xml version="1.0" encoding="utf-8" ?> 
<exchangeRates> 
<rate country="aud" >0.97</rate> 
<rate country="usd" >1.01</rate> 
</exchangeRates> 

我需要的下拉列表,以顯示國家,就像率

aud 0.97 
usd 1.01 

喜歡的東西

SELECT country + rate AS NewColumn FROM XML above 

And then use NewColumn for the DataValueFIeld: 

<asp:DropDownList ID="DropDownList1" runat="server" 
DataSourceID="SqlDBSrc" DataTextField="NAME" DataValueField="NewColumn" 
> 

<asp:XmlDataSource ID="ListItems" runat="server" DataFile="~/ExchangeRates.xml"> 
</asp:XmlDataSource> 

如何在asp.net中正確執行此操作?

回答

0

你可以使用LINQ to XML。 喜歡的東西(未測試)

dim selectList = (from x in xmldoc 
       select new SelectListItem { Text = x.Attribute("country") + ' '+ x.Value, Value = x.Id }); 
0

你可以廣告一個預渲染事件以控制和修改有控制

<asp:DropDownList ID="DropDownList1" runat="server" onprerender="DropDownList1_PreRender" 
DataSourceID="SqlDBSrc" DataTextField="Country" DataValueField="Value" 
> 

注:調整DataText和DataValue字段來填充未修改的數據。

在後面的代碼,這樣修改:

protected void DropDownList1_PreRender(object sender, EventArgs e) 
{ 
    foreach (ListItem item in DropDownList1.Items) 
    { 
     item.Text = item.Text + " " + item.Value; 
    } 
} 

這是爲了做這件事,但有可能是綁定列表之前其他更好的辦法。

0

<asp:DropDownList ID="DropDownList9" runat="server" DataSourceID="SqlDataSource3" DataTextField="**CALL_NAMESURNAME**" DataValueField="CALL_NAME"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:McCarthyConnectionString %>" SelectCommand="SELECT [CALL_NAME], [SURNAME],**CALL_NAME + SURNAME AS [CALL_NAMESURNAME]** FROM [Sheet1$] where COY_NAME LIKE '%abc%'"> </asp:SqlDataSource>

檢查**部分。