J
jmhmaine
I'm trying to create a categorized list of checkboxes using nested repeaters
with an XML datasource. I was able to get a list displaying, but I cannot
figure out the correct XMLNode references in the nested repeaters to get all
the values I need. I used Fritz Onion's article to get started at:
http://msdn2.microsoft.com/En-US/library/aa478959.aspx
Here is the ASPX page code (VB):
<asp:Repeater ID="uxArtists" runat="server">
<ItemTemplate>
<!--Display Artist Information -->
<h2><%#(CType(Container.DataItem,
System.Xml.XmlNode)).Item("ArtistName").InnerText%></h2>
<!--Display User Artist Preferences -->
<asp:Repeater ID="Repeater1" runat="server" DataSource='<%#
Container.DataItem %>'>
<ItemTemplate>
<asp:Repeater ID="Repeater2" runat="server"
DataSource='<%# Container.DataItem("PreferenceTypeName") %>'>
<ItemTemplate>
<h4><%#(CType(Container.DataItem,
System.Xml.XmlNode)).InnerText%></h4>
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="Repeater3" runat="server"
DataSource='<%# Container.DataItem %>'>
<ItemTemplate>
<asp:Repeater ID="Repeater4" runat="server"
DataSource='<%# Container.DataItem("Description") %>'>
<ItemTemplate>
<%#(CType(Container.DataItem,
System.Xml.XmlNode)).ParentNode.Value%>
<asp:CheckBox ID="CheckBox1"
runat="server" Text="<%#(CType(Container.DataItem,
System.Xml.XmlNode)).InnerText%>" />
<br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
<SeparatorTemplate>
<hr>
</SeparatorTemplate>
</asp:Repeater>
Here is the code behind (VB):
Dim doc As New XmlDocument
doc.Load(Server.MapPath("~/xml/sample.xml"))
uxArtists.DataSource = doc.FirstChild
uxArtists.DataBind()
Here is the sample XML file I'm pulling in:
<UserArtistPreferences>
<Artist ArtistID="11">
<ArtistName><![CDATA[Artist 1A]]></ArtistName>
<PreferenceType PreferenceTypeID="2">
<PreferenceTypeName><![CDATA[RemindersGroup1]]></PreferenceTypeName>
<Preference PreferenceID="2" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet1]]></PreferenceName>
<Description><![CDATA[Tell me when 1a selected.]]></Description>
</Preference>
<Preference PreferenceID="3" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet2]]></PreferenceName>
<Description><![CDATA[Tell me about 2a selected]]></Description>
</Preference>
<Preference PreferenceID="4" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet3]]></PreferenceName>
<Description><![CDATA[Tell me about 3a selected]]></Description>
</Preference>
<Preference PreferenceID="5" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet4]]></PreferenceName>
<Description><![CDATA[Send me about 4a selected.]]></Description>
</Preference>
<Preference PreferenceID="6" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet5]]></PreferenceName>
<Description><![CDATA[Send me about 5a selected.]]></Description>
</Preference>
<Preference PreferenceID="7" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet6]]></PreferenceName>
<Description><![CDATA[Send me about 6a selected]]></Description>
</Preference>
</PreferenceType>
<PreferenceType PreferenceTypeID="8">
<PreferenceTypeName><![CDATA[RemindersGroup2]]></PreferenceTypeName>
<Preference PreferenceID="8" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet7]]></PreferenceName>
<Description><![CDATA[Send me about 7a selected.]]></Description>
</Preference>
<Preference PreferenceID="9" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 8a selected.]]></Description>
</Preference>
</PreferenceType>
</Artist>
<Artist ArtistID="12">
<ArtistName><![CDATA[Artist 2A]]></ArtistName>
<PreferenceType PreferenceTypeID="2">
<PreferenceTypeName><![CDATA[]]></PreferenceTypeName>
<Preference PreferenceID="2" IsSelected="False">
<PreferenceName><![CDATA[RemindersGroup1]]></PreferenceName>
<Description><![CDATA[Tell me when 1a selected.]]></Description>
</Preference>
<Preference PreferenceID="3" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet2]]></PreferenceName>
<Description><![CDATA[Tell me about 2a selected]]></Description>
</Preference>
<Preference PreferenceID="4" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet3]]></PreferenceName>
<Description><![CDATA[Tell me about 3a selected]]></Description>
</Preference>
<Preference PreferenceID="5" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet4]]></PreferenceName>
<Description><![CDATA[Send me about 4a selected.]]></Description>
</Preference>
<Preference PreferenceID="6" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet5]]></PreferenceName>
<Description><![CDATA[Send me about 5a selected.]]></Description>
</Preference>
<Preference PreferenceID="7" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet6]]></PreferenceName>
<Description><![CDATA[Send me about 6a selected]]></Description>
</Preference>
</PreferenceType>
<PreferenceType PreferenceTypeID="8">
<PreferenceTypeName><![CDATA[RemindersSet2]]></PreferenceTypeName>
<Preference PreferenceID="8" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 7a selected.]]></Description>
</Preference>
<Preference PreferenceID="9" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 8a selected.]]></Description>
</Preference>
</PreferenceType>
</Artist>
<Artist ArtistID="17">
<ArtistName><![CDATA[Artist 3A]]></ArtistName>
<PreferenceType PreferenceTypeID="2">
<PreferenceTypeName><![CDATA[RemindersGroup1]]></PreferenceTypeName>
<Preference PreferenceID="2" IsSelected="False">
<PreferenceName><![CDATA[pref1a]]></PreferenceName>
<Description><![CDATA[Tell me when 1a selected.]]></Description>
</Preference>
<Preference PreferenceID="3" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet2]]></PreferenceName>
<Description><![CDATA[Tell me about 2a selected]]></Description>
</Preference>
<Preference PreferenceID="4" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet3]]></PreferenceName>
<Description><![CDATA[Tell me about 3a selected]]></Description>
</Preference>
<Preference PreferenceID="5" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet4]]></PreferenceName>
<Description><![CDATA[Send me a.]]></Description>
</Preference>
<Preference PreferenceID="6" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet5]]></PreferenceName>
<Description><![CDATA[Send me about 5a selected.]]></Description>
</Preference>
<Preference PreferenceID="7" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet6]]></PreferenceName>
<Description><![CDATA[Send me about 6a selected]]></Description>
</Preference>
</PreferenceType>
<PreferenceType PreferenceTypeID="8">
<PreferenceTypeName><![CDATA[RemindersSet2]]></PreferenceTypeName>
<Preference PreferenceID="8" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet7]]></PreferenceName>
<Description><![CDATA[Send me about 7a selected.]]></Description>
</Preference>
<Preference PreferenceID="9" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 8a selected.]]></Description>
</Preference>
</PreferenceType>
</Artist>
</UserArtistPreferences>
Basically what I want is to be able to set the "selected" value for each
checkbox using the IsSelected Attribute of the Preference element. Something
like this:
<asp:CheckBox ID="CheckBox1" runat="server"
Text="<%#(CType(Container.DataItem, System.Xml.XmlNode)).InnerText%>"
Selected="<%# CORRECT CODE HERE %>" />
I believe I'm missing something in the way I'm calling the
Container.DataItem object. Thanks in advance for the help, please post code
suggestions in VB.
with an XML datasource. I was able to get a list displaying, but I cannot
figure out the correct XMLNode references in the nested repeaters to get all
the values I need. I used Fritz Onion's article to get started at:
http://msdn2.microsoft.com/En-US/library/aa478959.aspx
Here is the ASPX page code (VB):
<asp:Repeater ID="uxArtists" runat="server">
<ItemTemplate>
<!--Display Artist Information -->
<h2><%#(CType(Container.DataItem,
System.Xml.XmlNode)).Item("ArtistName").InnerText%></h2>
<!--Display User Artist Preferences -->
<asp:Repeater ID="Repeater1" runat="server" DataSource='<%#
Container.DataItem %>'>
<ItemTemplate>
<asp:Repeater ID="Repeater2" runat="server"
DataSource='<%# Container.DataItem("PreferenceTypeName") %>'>
<ItemTemplate>
<h4><%#(CType(Container.DataItem,
System.Xml.XmlNode)).InnerText%></h4>
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="Repeater3" runat="server"
DataSource='<%# Container.DataItem %>'>
<ItemTemplate>
<asp:Repeater ID="Repeater4" runat="server"
DataSource='<%# Container.DataItem("Description") %>'>
<ItemTemplate>
<%#(CType(Container.DataItem,
System.Xml.XmlNode)).ParentNode.Value%>
<asp:CheckBox ID="CheckBox1"
runat="server" Text="<%#(CType(Container.DataItem,
System.Xml.XmlNode)).InnerText%>" />
<br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
<SeparatorTemplate>
<hr>
</SeparatorTemplate>
</asp:Repeater>
Here is the code behind (VB):
Dim doc As New XmlDocument
doc.Load(Server.MapPath("~/xml/sample.xml"))
uxArtists.DataSource = doc.FirstChild
uxArtists.DataBind()
Here is the sample XML file I'm pulling in:
<UserArtistPreferences>
<Artist ArtistID="11">
<ArtistName><![CDATA[Artist 1A]]></ArtistName>
<PreferenceType PreferenceTypeID="2">
<PreferenceTypeName><![CDATA[RemindersGroup1]]></PreferenceTypeName>
<Preference PreferenceID="2" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet1]]></PreferenceName>
<Description><![CDATA[Tell me when 1a selected.]]></Description>
</Preference>
<Preference PreferenceID="3" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet2]]></PreferenceName>
<Description><![CDATA[Tell me about 2a selected]]></Description>
</Preference>
<Preference PreferenceID="4" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet3]]></PreferenceName>
<Description><![CDATA[Tell me about 3a selected]]></Description>
</Preference>
<Preference PreferenceID="5" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet4]]></PreferenceName>
<Description><![CDATA[Send me about 4a selected.]]></Description>
</Preference>
<Preference PreferenceID="6" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet5]]></PreferenceName>
<Description><![CDATA[Send me about 5a selected.]]></Description>
</Preference>
<Preference PreferenceID="7" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet6]]></PreferenceName>
<Description><![CDATA[Send me about 6a selected]]></Description>
</Preference>
</PreferenceType>
<PreferenceType PreferenceTypeID="8">
<PreferenceTypeName><![CDATA[RemindersGroup2]]></PreferenceTypeName>
<Preference PreferenceID="8" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet7]]></PreferenceName>
<Description><![CDATA[Send me about 7a selected.]]></Description>
</Preference>
<Preference PreferenceID="9" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 8a selected.]]></Description>
</Preference>
</PreferenceType>
</Artist>
<Artist ArtistID="12">
<ArtistName><![CDATA[Artist 2A]]></ArtistName>
<PreferenceType PreferenceTypeID="2">
<PreferenceTypeName><![CDATA[]]></PreferenceTypeName>
<Preference PreferenceID="2" IsSelected="False">
<PreferenceName><![CDATA[RemindersGroup1]]></PreferenceName>
<Description><![CDATA[Tell me when 1a selected.]]></Description>
</Preference>
<Preference PreferenceID="3" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet2]]></PreferenceName>
<Description><![CDATA[Tell me about 2a selected]]></Description>
</Preference>
<Preference PreferenceID="4" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet3]]></PreferenceName>
<Description><![CDATA[Tell me about 3a selected]]></Description>
</Preference>
<Preference PreferenceID="5" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet4]]></PreferenceName>
<Description><![CDATA[Send me about 4a selected.]]></Description>
</Preference>
<Preference PreferenceID="6" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet5]]></PreferenceName>
<Description><![CDATA[Send me about 5a selected.]]></Description>
</Preference>
<Preference PreferenceID="7" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet6]]></PreferenceName>
<Description><![CDATA[Send me about 6a selected]]></Description>
</Preference>
</PreferenceType>
<PreferenceType PreferenceTypeID="8">
<PreferenceTypeName><![CDATA[RemindersSet2]]></PreferenceTypeName>
<Preference PreferenceID="8" IsSelected="True">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 7a selected.]]></Description>
</Preference>
<Preference PreferenceID="9" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 8a selected.]]></Description>
</Preference>
</PreferenceType>
</Artist>
<Artist ArtistID="17">
<ArtistName><![CDATA[Artist 3A]]></ArtistName>
<PreferenceType PreferenceTypeID="2">
<PreferenceTypeName><![CDATA[RemindersGroup1]]></PreferenceTypeName>
<Preference PreferenceID="2" IsSelected="False">
<PreferenceName><![CDATA[pref1a]]></PreferenceName>
<Description><![CDATA[Tell me when 1a selected.]]></Description>
</Preference>
<Preference PreferenceID="3" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet2]]></PreferenceName>
<Description><![CDATA[Tell me about 2a selected]]></Description>
</Preference>
<Preference PreferenceID="4" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet3]]></PreferenceName>
<Description><![CDATA[Tell me about 3a selected]]></Description>
</Preference>
<Preference PreferenceID="5" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet4]]></PreferenceName>
<Description><![CDATA[Send me a.]]></Description>
</Preference>
<Preference PreferenceID="6" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet5]]></PreferenceName>
<Description><![CDATA[Send me about 5a selected.]]></Description>
</Preference>
<Preference PreferenceID="7" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet6]]></PreferenceName>
<Description><![CDATA[Send me about 6a selected]]></Description>
</Preference>
</PreferenceType>
<PreferenceType PreferenceTypeID="8">
<PreferenceTypeName><![CDATA[RemindersSet2]]></PreferenceTypeName>
<Preference PreferenceID="8" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet7]]></PreferenceName>
<Description><![CDATA[Send me about 7a selected.]]></Description>
</Preference>
<Preference PreferenceID="9" IsSelected="False">
<PreferenceName><![CDATA[RemindersSet8]]></PreferenceName>
<Description><![CDATA[Send me about 8a selected.]]></Description>
</Preference>
</PreferenceType>
</Artist>
</UserArtistPreferences>
Basically what I want is to be able to set the "selected" value for each
checkbox using the IsSelected Attribute of the Preference element. Something
like this:
<asp:CheckBox ID="CheckBox1" runat="server"
Text="<%#(CType(Container.DataItem, System.Xml.XmlNode)).InnerText%>"
Selected="<%# CORRECT CODE HERE %>" />
I believe I'm missing something in the way I'm calling the
Container.DataItem object. Thanks in advance for the help, please post code
suggestions in VB.