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.
 

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

Top