【问题标题】:How to bind my DDL from XML Data Source in asp.net如何在 asp.net 中从 XML 数据源绑定我的 DDL
【发布时间】:2016-07-20 13:13:11
【问题描述】:

我有一个客户提供给我的 xml 文件,所以我无法更改它,它看起来像这样:

代码库.XML

<?xml version="1.0" encoding="utf-8"?>
<CATALOG>
  <orderByTitleDesc />
  <orderByTitleDesc />
  <orderByTitleDesc />
  <orderByTitleDesc />
  <orderByTitleDesc />
  <CD>
    <CodeBase>hellow</CodeBase>
  </CD>
  <CD>
    <CodeBase>http://KL1225K7/EViewer/Client/EvCtrl6En.cab#version=9,4,2,9</CodeBase>
  </CD>
  <CD>
    <CodeBase>31 amrch testing for font</CodeBase>
  </CD>
  <CD>
    <CodeBase>CodeBase2</CodeBase>
  </CD>
  <CD>
    <CodeBase>Ser</CodeBase>
  </CD>
  <CD>
    <CodeBase>ZaidiTest</CodeBase>
  </CD>
  <CD>
    <CodeBase>test222</CodeBase>
  </CD>
</CATALOG>

我想在 ddl 中将此 xml 与 this 绑定

我在代码后面的文件中编写代码如下:

 protected void Page_Load(object sender, EventArgs e)
    {

        string filePath = Server.MapPath("CodeBase.xml");
        using (DataSet ds = new DataSet())
        {
            ds.ReadXml(filePath);
            ddlCodeBase.DataSource = ds.Tables["1"];
            ddlCodeBase.DataTextField = "CodeBase";
            ddlCodeBase.DataValueField = "CD";
            ddlCodeBase.DataBind();
        }
    }

客户端代码如下:

 <asp:DropDownList ID="ddlCodeBase" runat="server" ></asp:DropDownList>

但是我得到了空的 DDl(里面没有数据)。请让我知道伙计们该怎么做。 提前致谢。

【问题讨论】:

标签: c# asp.net xml data-binding ddl


【解决方案1】:

试试下面的代码。它对我来说工作正常。

 string filePath = Server.MapPath("~/Cities.xml");
using (DataSet ds = new DataSet())
{
    ds.ReadXml(filePath);
    ddlCities.DataSource = ds;
    ddlCities.DataTextField = "CodeBase";
    ddlCities.DataValueField = "CodeBase";
    ddlCities.DataBind();
}

【讨论】:

  • 当我调试到最后一个时给我这样的错误 System.Web.dll 中发生了“System.Web.HttpException”类型的异常,但未在用户代码中处理其他信息:DataBinding:' System.Data.DataRowView' 不包含名为 'CodeBase' 的属性。
  • 更改文件名我使用了ities.xml
  • protected void Page_Load(object sender, EventArgs e) { //fillDDL(); string filePath = Server.MapPath("~/CodeBase.xml"); //使用 (DataSet ds = new DataSet()) //{ DataSet ds = new DataSet(); ds.ReadXml(filePath); ddlCodeBase.DataSource = ds.Tables["CD"]; ddlCodeBase.DataTextField = "代码库"; ddlCodeBase.DataValueField = "代码库"; ddlCodeBase.DataBind(); // } }
  • 通过将此添加到我的代码中 ddlCodeBase.DataSource = ds.Tables["CD"];
  • 如果我的代码对你有帮助,那么投票给我。@BasantGera
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多