Urgent , please help-How to get child repeater checkbox status

  • Thread starter Ceema M via DotNetMonster.com
  • Start date
C

Ceema M via DotNetMonster.com

Hello all,

I have a nested repeater, which displays categories(parent repeater) and
corresponding subcategories(child repeater). Both repeaters have checkboxes.
When I check category checkbox and subcategory check boxes and click on
submit button , I have to retrieve the corresponding categoryid and
subcategory id, so that I can store it to a table. I am getting the
categoryid but I am failing to get subcategoryid(actually I don't know how to
retrieve it).

Thanks
Ceema

My output will look like

(checkbox)Category1
(checkbox)SubCategory11.1
(checkbox)SubCategory11.2
(checkbox)SubCategory11.3
(checkbox)Category2
(checkbox)SubCategory12.1
(checkbox)SubCategory12.2
(checkbox)Category3


and my code for this is..


Code for repeater is


<asp:repeater id="parentRepeater" runat="server">
<HeaderTemplate>
<table border="0" width="100%" cellspacing="2" cellpadding="2">
</HeaderTemplate>
<itemtemplate>
<tr>
<td>
<asp:CheckBox ID="chkIncld" Runat="server" Checked="true"
Enabled="true"></asp:CheckBox>
<asp:Label ID="lblCategoryID" Runat="server" text='<%# Container.dataitem
("CategoryID") %>' Visible="false">
</asp:Label>
</td>
</tr>
<br>
<asp:repeater id="childRepeater" runat="server" datasource='<%# Container.
DataItem.Row.GetChildRows("myrelation1") %>'>
<itemtemplate>
<tr>
<td>
<asp:CheckBox id='chksubid' SubId='<%# Container.dataitem("SD") %>'
Runat="server" Checked="true" />
<asp:Label ID="lblSubCategoryID" Runat="server" text='<%# Container.dataitem
("SD") %>' Visible="false">
</asp:Label>
<%# Container.DataItem("SubCategoryName") %>
</td>
</tr>
<br>
</itemtemplate>
</asp:repeater>
<FooterTemplate>
</table>
</FooterTemplate>
</itemtemplate>
</asp:repeater><asp:button id="Submit" onclick="Doit" runat="server"
Width="60px" Text="Submit" Height="20px"></asp:button><asp:label id="Label1"
runat="server" visible="false"></asp:label></form>

And code behind will look like

Public Sub Doit(ByVal Source As Object, ByVal E As EventArgs)
Response.Write("<br>")
Dim i As Integer

Dim iCount As Integer = parentRepeater.Items.Count - 1

Dim _chk As Integer

Dim _lblCateDesc As Label
Dim _lblDescID As Label

Dim _lblID As String


' Spin through all the items and add the checked Parts
For i = 0 To iCount

_chk = (CType(parentRepeater.Items.Item(i).FindControl("chkIncld")
, CheckBox).Checked) * -1
_lblCateDesc = CType(parentRepeater.Items.Item(i).FindControl
("lblCategoryName"), Label)
_lblDescID = CType(parentRepeater.Items.Item(i).FindControl
("lblCategoryID"), Label)

If _chk = 1 Then

_lblID = _lblDescID.Text & " , " & _lblID



End If
Next
End sub
..
..
..
 
G

Guest

You'll probably need a nested FOR EACH loop to go with the nested repeaters.
It's a pain (been there, done that) but it's fairly straightforward.
 
S

S. Justin Gengo

Ceema,

If you'd like, take a look at some datagrid code I have on my website,
www.aboutfortunate.com. If you click the "Code Library" link at the top of
the page and then use the search box you'll see to search for "Checkbox in
Datagrid" you'll get some sample code that is very similar to what you need
to do. In that code I loop through a datagrid's items to find which checkbox
is checked. Swap the grid for your repeater and it's very similar to what
you need.

--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,054
Latest member
LucyCarper

Latest Threads

Top