无法将XML文件绑定到asp.net中的下拉列表

时间:2013-07-12 16:39:03

标签: asp.net xml

我是asp.net的新手 我下载了这个xll文件,就像这样

    <?xml version="1.0" encoding="utf-8"?>
<countries author="Banmeet Singh" title="Country, State-Province selections"
date="2008-Feb-05">
  <country name="Afghanistan">
    <state>Badakhshan</state>
    <state>Badghis</state>
    <state>Baghlan</state>
    <state>Balkh</state>
    <state>Bamian</state>
    <state>Farah</state>
    <state>Faryab</state>
    <state>Ghazni</state>
    <state>Ghowr</state>
    <state>Helmand</state>
    <state>Herat</state>
    <state>Jowzjan</state>
    <state>Kabol</state>
    <state>Kandahar</state>

这个名单还在继续。 现在我想在下拉列表中显示国家/地区,  所以这是c#on page_load

中的代码
     DataSet myDataSet = new DataSet();

        myDataSet.ReadXml(Server.MapPath("xml/country_state.xml"));
        DropDownList1.DataSource = myDataSet;
        DropDownList1.DataBind();
        DropDownList1.DataTextField = "country";
        DropDownList1.DataBind();

Ir给出了这个错误 : - DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'state' 请告诉我我做错了什么。感谢

好的更新,这里是html代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>



    </form>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

您必须将列表绑定到Table

中的Dataset

所以你的绑定应该更像这样(假设你只有Dataset中的一个表)

DropDownList1.DataSource = myDataSet.Tables[0];

也尝试像这样绑定到列:

DropDownList1.DataTextField = ds.Tables[0].Columns["country"].ToString();

最后 - 您不需要Bind()两次,只需一次。设置完所有属性后通常是一个好地方。

关于state错误 - 您确定发布了所有涉及的代码吗?这应该只是在你试图访问“状态”时出现,而且看起来你的内容并不像你发布的那样。