2013-07-12 82 views
0

我很新的ASP.NET 我下載了這個XLL與文件是這樣的無法綁定XML文件到一個下拉列表在asp.net

<?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#代碼上的Page_Load

 DataSet myDataSet = new DataSet(); 

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

銥給出這個錯誤 : - 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

請向我們展示DropDownList1的html部分 – saamorim

回答

0

你必須內Dataset

列表綁定到Table所以,你的結合應該更喜歡這個(假設你只有1在Dataset「表)

DropDownList1.DataSource = myDataSet.Tables[0]; 

也可以嘗試結合柱像這樣:

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

最後 - 你不需要兩次,只需要一次Bind()。設置好所有的屬性後通常是一個好地方。

關於您的state錯誤 - 您確定已發佈所有涉及的代碼?這應該只是在你嘗試訪問'狀態'時纔會出現,而且看起來你並不像你所發佈的那樣。