我是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>
答案 0 :(得分:0)
您必须将列表绑定到Table
Dataset
所以你的绑定应该更像这样(假设你只有Dataset
中的一个表)
DropDownList1.DataSource = myDataSet.Tables[0];
也尝试像这样绑定到列:
DropDownList1.DataTextField = ds.Tables[0].Columns["country"].ToString();
最后 - 您不需要Bind()
两次,只需一次。设置完所有属性后通常是一个好地方。
关于state
错误 - 您确定发布了所有涉及的代码吗?这应该只是在你试图访问“状态”时出现,而且看起来你的内容并不像你发布的那样。