c# - 从 XmlDataSource 填充 DropDownList

标签 c# asp.net xpath drop-down-menu

我想使用一个简单的 xml 文件填充我的 DropDownList:

<?xml version="1.0" encoding="utf-8" ?>
<Databases>
  <Database>foo</Database>
  <Database>bar</Database>
  <Database>baz</Database>
</Databases>

我的 XPath 是

/Databases/Database

我的下拉列表呈现为:

<select name="databaseDropDownList" id="databaseDropDownList"> 
                    <option selected="selected" value="System.Web.UI.WebControls.XmlDataSourceNodeDescriptor">System.Web.UI.WebControls.XmlDataSourceNodeDescriptor</option>
                    <option value="System.Web.UI.WebControls.XmlDataSourceNodeDescriptor">System.Web.UI.WebControls.XmlDataSourceNodeDescriptor</option>
                    <option value="System.Web.UI.WebControls.XmlDataSourceNodeDescriptor">System.Web.UI.WebControls.XmlDataSourceNodeDescriptor</option>
</select>

我应该如何提取文本?

谢谢

最佳答案

我记不清了,但我认为 XmlDataSource 中有一个错误阻止您绑定(bind)到 xml 节点的值。它仅适用于属性。如果我对此有误,请纠正我。您需要对 XML 文件稍作修改:

<%@ Page Language="C#" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string xml =
@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<Databases>
  <Database name=""foo"" />
  <Database name=""bar"" />
  <Database name=""baz"" />
</Databases>";
            databasesSource.Data = xml;
            databasesSource.DataBind();
        }
    }
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="databases" runat="server" DataSourceID="databasesSource" DataValueField="name" DataTextField="name" />
        <asp:XmlDataSource ID="databasesSource" runat="server" XPath="/Databases/Database" />
    </div>
    </form>
</body>
</html>

请注意,我添加了 name 属性,而不是直接使用节点的值。

如果您不能修改原始 XML 文件的结构,您可以使用 TransformFile 对其应用 XSLT 转换。 post 中描述的属性.

关于c# - 从 XmlDataSource 填充 DropDownList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/631365/

相关文章:

c# - 为什么 ASP.NET 似乎以不同方式处理框架和 Web 应用程序抛出的异常?

c# - 存储查找值的最佳方式

xml - 包含 "xmlns"属性时,Selenium 找不到 Xpath

php - 如何在div父节点中追加子节点?

c# - 枚举本地化

c# - 如何优雅地处理调用可能永远不会返回的方法

c# - 使用 ViewState 和 ViewStateMode ="Disabled"EnableViewState ="true"

r - 如何单击 javascript "link"?是我的 xpath 还是我的 relenium/selenium 用法?

c# - 在加载时从 Excel 文件中删除所有格式

c# - 如何正确地为<audio>提供数据?