2011-10-21 1 views
2

DataBinding : 'System.Web.UI.WebControls.XmlDataSourceNodeDescriptor'에 'name'이라는 이름의 속성이 없습니다.xmldatasource를 사용하여 XML 데이터를 Listbox에 바인딩하려고하지만 오류가 발생했습니다.

XML 파일 :

<Persons> 
    <Person > 
    <id>1</id> 
    <name>jkl</name> 
    </Person> 
    <Person > 
    <id>2</id> 
    <name>jhk</name> 
    </Person> 
    <Person > 
    <id>3</id> 
    <name>kjh</name> 
    </Person> 
    <Person > 
    <id>4</id> 
    <name>jhkj</name> 
    </Person> 
    <Person > 
    <id>5</id> 
    <name>lj</name> 
    </Person> 
    <Person > 
    <id>6</id> 
    <name>jhkl</name> 
    </Person> 
    <Person > 
    <id>7</id> 
    <name>jhj</name> 
    </Person> 
</Persons> 

내가 XML에서 datatextfield=namedatavaluefield=id와 목록 상자에 바인딩합니다.

aspx 페이지의 코드는 다음과 같다 :

<asp:ListBox ID="lstBinddata" runat="server" SelectionMode="Multiple" DataSourceID="xmldata" DataTextField="name" DataValueField="id"> 
    </asp:ListBox> 
    <asp:XmlDataSource ID="xmldata" runat="server" DataFile="xmldata.xml"> </asp:XmlDataSource>        
+0

PLZ 도와주세요 ... ........... – Kartik

답변

0

난 당신이 XmlDataSource의 XPath에 속성을 설정해야합니다 생각합니다. 나는 그것이 있어야 같아요

XPath="Persons/Person" 
+0

아직 'DataBinding'과 같은 오류가 발생합니다. 'System.Web.UI.WebControls.XmlDataSourceNodeDescriptor'에 'name'이름의 속성이 없습니다. – Kartik

+0

당신의 코드를 시험해 보았습니다. XPath가 "Person"으로 변경되었고 예외가 사라졌습니다. 하지만 ListBox에 바인딩 된 데이터가 없습니다. 흥미로운 문제 :), 나도 몰라 ... – Michal

+0

만약 당신이 그때 말해 pls ......... 솔루션을 얻을 것이다 – Kartik

0

당신은 사용해야합니다

XPath("name") 

마찬가지로, 당신은 또한 ID의 값에 액세스하는 데 사용할 수 있습니다 :

XPath("id") 
관련 문제