• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 291
  • Last Modified:

binding XmlDataSource to CheckBoxList

Please see attached Image (lessonPage)

I want to have these checkboxes on the page, but powered from an xml file

Now look at the image (Code) and you will see what I have so far (which doesn't work)

to get a working example, i just want to show all the CATEGORIES items as checkboxes

here is the XML
    <Categories>
        <Item SearchText="Creation">Creation</Item>
        <Item SearchText="The Flood">TheFlood</Item>
        <Item SearchText="Gods Chosen People">GodsChosenPeople</Item>
        <Item SearchText="Commandments">Commandments</Item>
        <Item SearchText="The Judges">TheJudges</Item>
        <Item SearchText="The Kings">TheKings</Item>
        <Item SearchText="The Prophets">TheProphets</Item>
        <Item SearchText="Jesus' Birth Christmas">JesusBirthChristmas</Item>
        <Item SearchText="Jesus' Death Easter">JesusDeathEaster</Item>
        <Item SearchText="Parables">TheParables</Item>
        <Item SearchText="Miracles">TheMiracles</Item>
        <Item SearchText="Disciples/Apostles">TheDisciples/Apostles</Item>
        <Item SearchText="People Jesus Met">PeopleJesusMet</Item>
        <Item SearchText="The Early Church">TheEarlyChurch</Item>
    </Categories>

Open in new window


and here is what i've used for the ascx control
<asp:CheckBoxList 
    ID="CheckBoxList1" 
    runat="server" 
    DataSourceID="XmlDataSource1"
    DataTextField="SearchText"  
    >
    </asp:CheckBoxList>

<asp:XmlDataSource  ID="XmlDataSource1" 
                    runat="server" 
                    DataFile="~/LanguageXmlFiles/SearchFilter.xml" 
                    XPath="/BesSearch/Categories"></asp:XmlDataSource>

Open in new window


however it doesn't work and i've no idea why
Capture.JPG
lessonpage.jpg
0
websss
Asked:
websss
  • 2
1 Solution
 
Robert SchuttSoftware EngineerCommented:
Seems you're only missing the last level in the XPath property of your XmlDataSource; add /Item:
<asp:XmlDataSource  ID="XmlDataSource1" 
                    runat="server" 
                    DataFile="~/LanguageXmlFiles/SearchFilter.xml" 
                    XPath="/BesSearch/Categories/Item"></asp:XmlDataSource>

Open in new window

0
 
Robert SchuttSoftware EngineerCommented:
By the way, the text that you have inside the Item nodes (without the spaces) might be what you want to use for the DataValueField property of your CheckBoxList. If that's the case then I think (haven't used it an awful lot myself yet) that you need an xsl transformation. Should be a relatively simple one in this case, but still it could be easier to make sure anything you want to use is contained in attributes, for example:
<Item SearchText="The Flood" ID="TheFlood" />

Open in new window

Then you could use:
<asp:CheckBoxList 
    ID="CheckBoxList1" 
    runat="server" 
    DataSourceID="XmlDataSource1"
    DataTextField="SearchText"  
    DataValueField="ID"
    >
    </asp:CheckBoxList>

Open in new window

Then again, if you don't need that part specifically, you can forget about this part ;-)
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now