Solved

binding XmlDataSource to CheckBoxList

Posted on 2013-06-03
2
264 Views
Last Modified: 2013-06-20
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
Comment
Question by:websss
  • 2
2 Comments
 
LVL 35

Accepted Solution

by:
Robert Schutt earned 500 total points
ID: 39217410
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
 
LVL 35

Expert Comment

by:Robert Schutt
ID: 39217439
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

27 Experts available now in Live!

Get 1:1 Help Now