Home All Groups Group Topic Archive Search About

How to capture CheckChanged event from Radiobutton in Datagrid?

Author
11 Mar 2005 7:30 PM
David Hearn
I have a radio button that I have inserted into a datagrid via a
TemplateColumn. I need to know when the checked property of the radiobutton
has changed so that I can do something. I have named a sub in the
OnCheckChanged event so I really just need to know how to write the sub so
that it knows which radiobutton it is that changed.

Thanks in advance!

Author
11 Mar 2005 9:05 PM
Elton Wang
Hi David,

You can identify the radiobutton from its ClientID.

HTH

Elton Wang
elton_w***@hotmail.com


>-----Original Message-----
>I have a radio button that I have inserted into a
datagrid via a
>TemplateColumn. I need to know when the checked property
of the radiobutton
>has changed so that I can do something. I have named a
sub in the
>OnCheckChanged event so I really just need to know how to
write the sub so
Show quoteHide quote
>that it knows which radiobutton it is that changed.
>
>Thanks in advance!
>
>
>.
>
Author
13 Mar 2005 11:13 PM
Scott M.
This code is for a checkbox, but you can easily adapt it for a RadioButton:

To capture the event for a control placed into a Template column of a
DataGrid, you need to add the following code to your code-behind (this
assumes the checkbox is named "chkDynamic"):

Protected Sub chkDynamic_CheckedChanged(ByVal Sender As Object, ByVal e As
System.EventArgs)
'This sub will be run for every row that has had its value changed
    Dim chk As CheckBox = CType(Sender, CheckBox)
    Dim item As DataGridItem = CType(chk.NamingContainer, DataGridItem)
    ' "item" is now a reference to the DataGrid selected row
    If chk.Checked Then item.BackColor = Color.Gray
        'From here, you could grab some data from this row with:
item.FindControl("ControlName")
        'and then you would know which record was selected.
End Sub

Private Sub dg_ItemCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles dg.ItemCreated
    'This sub runs anytime the DataGrid needs to dynamically create a cotrol
    'but we only are interested in rows that may have controls (not header,
footer or pager rows)
    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
ListItemType.AlternatingItem Then
        Dim chk As CheckBox = CType(e.Item.FindControl("chkDynamic"),
CheckBox)
        AddHandler chk.CheckedChanged, AddressOf chkDynamic_CheckedChanged
        'This adds a client-side JavaScript event handler.
        'You must also have added a client-side JavaScript function called
chkShow(sender)
        chk.Attributes.Add("onClick", "chkShow(this," & rowNum.ToString &
")")
    End If
End Sub




Show quoteHide quote
"Elton Wang" <anonym***@discussions.microsoft.com> wrote in message
news:609b01c5267e$125062c0$a501280a@phx.gbl...
> Hi David,
>
> You can identify the radiobutton from its ClientID.
>
> HTH
>
> Elton Wang
> elton_w***@hotmail.com
>
>
>>-----Original Message-----
>>I have a radio button that I have inserted into a
> datagrid via a
>>TemplateColumn. I need to know when the checked property
> of the radiobutton
>>has changed so that I can do something. I have named a
> sub in the
>>OnCheckChanged event so I really just need to know how to
> write the sub so
>>that it knows which radiobutton it is that changed.
>>
>>Thanks in advance!
>>
>>
>>.
>>
Author
17 May 2005 6:37 PM
John Walker
Scott,
Thanks!  this code came in very handy.

Show quoteHide quote
"Scott M." wrote:

> This code is for a checkbox, but you can easily adapt it for a RadioButton:
>
> To capture the event for a control placed into a Template column of a
> DataGrid, you need to add the following code to your code-behind (this
> assumes the checkbox is named "chkDynamic"):
>
> Protected Sub chkDynamic_CheckedChanged(ByVal Sender As Object, ByVal e As
> System.EventArgs)
> 'This sub will be run for every row that has had its value changed
>     Dim chk As CheckBox = CType(Sender, CheckBox)
>     Dim item As DataGridItem = CType(chk.NamingContainer, DataGridItem)
>     ' "item" is now a reference to the DataGrid selected row
>     If chk.Checked Then item.BackColor = Color.Gray
>         'From here, you could grab some data from this row with:
> item.FindControl("ControlName")
>         'and then you would know which record was selected.
> End Sub
>
> Private Sub dg_ItemCreated(ByVal sender As Object, ByVal e As
> System.Web.UI.WebControls.DataGridItemEventArgs) Handles dg.ItemCreated
>     'This sub runs anytime the DataGrid needs to dynamically create a cotrol
>     'but we only are interested in rows that may have controls (not header,
> footer or pager rows)
>     If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
> ListItemType.AlternatingItem Then
>         Dim chk As CheckBox = CType(e.Item.FindControl("chkDynamic"),
> CheckBox)
>         AddHandler chk.CheckedChanged, AddressOf chkDynamic_CheckedChanged
>         'This adds a client-side JavaScript event handler.
>         'You must also have added a client-side JavaScript function called
> chkShow(sender)
>         chk.Attributes.Add("onClick", "chkShow(this," & rowNum.ToString &
> ")")
>     End If
> End Sub
>
>
>
>
> "Elton Wang" <anonym***@discussions.microsoft.com> wrote in message
> news:609b01c5267e$125062c0$a501280a@phx.gbl...
> > Hi David,
> >
> > You can identify the radiobutton from its ClientID.
> >
> > HTH
> >
> > Elton Wang
> > elton_w***@hotmail.com
> >
> >
> >>-----Original Message-----
> >>I have a radio button that I have inserted into a
> > datagrid via a
> >>TemplateColumn. I need to know when the checked property
> > of the radiobutton
> >>has changed so that I can do something. I have named a
> > sub in the
> >>OnCheckChanged event so I really just need to know how to
> > write the sub so
> >>that it knows which radiobutton it is that changed.
> >>
> >>Thanks in advance!
> >>
> >>
> >>.
> >>
>
>
>