By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,846 Members | 1,680 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,846 IT Pros & Developers. It's quick & easy.

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

P: n/a
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("c hkIncld")
, 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
..
..
..
Nov 19 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
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.

--
Curt Christianson
site: http://www.darkfalz.com
blog: http://blog.darkfalz.com

"Ceema M via DotNetMonster.com" wrote:
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("c hkIncld")
, 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
..
..
..

Nov 19 '05 #2

P: n/a
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
"Ceema M via DotNetMonster.com" <fo***@DotNetMonster.com> wrote in message
news:54***********@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("c hkIncld")
, 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
.
.
.

Nov 19 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.