我需要制作一个下拉列表,结合xml文件中的两个字段......
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 :(得分:0)
您可以使用LINQ to XML。 像(未经测试)的东西
dim selectList = (from x in xmldoc
select new SelectListItem { Text = x.Attribute("country") + ' '+ x.Value, Value = x.Id });
答案 1 :(得分: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;
}
}
这是一种方法,但在绑定列表之前可能还有其他更好的方法。
答案 2 :(得分: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>
检查** **部分。