asp checkbox checking for OnCheckedChanged value

  • Thread starter Maziar Aflatoun
  • Start date
M

Maziar Aflatoun

Hi everyone,

I am reading and displaying data rows from my database where the first
column contains the Status checkbox. I like to enable my users to change
the status of individual rows by checking and unchecking the checkbox
column. I like to update the status in the database for the column where
the status was changed.

This is what I'm doing so far

<asp:datagrid id="MyDataGrid" runat="server" CellPadding="2"
AutoGenerateColumns="false" HeaderStyle-CssClass="maintableheader"
Width="95%">
<Columns>
<asp:BoundColumn DataField="BID" ReadOnly="True"
Visible="False"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Active" Visible="True"
ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="Status" Runat="server" Checked='<%#
FormatStatus(DataBinder.Eval(Container.DataItem, "Status")) %>'
AutoPostBack=True OnCheckedChanged="UpdateCheckboxStatus">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
....etc.

and in my .cs page

public void UpdateCheckboxStatus(object sender, System.EventArgs e)
{
Response.Write ("You click the row...")...
}

How can I find out which row was clicked? Please let me know if there is a
better way to do this.

Thank you
Maz
 
T

Teemu Keiski

Hi,

you get to the CheckBox's parent DataGridItem by utilizing the hierarchical
idea of Controls collection, meaning that get it via your Control's Parent
property.

public void UpdateCheckboxStatus(object sender, System.EventArgs e)
{
//Written into several lines to clarify, you could go with one line

//Current checkbox
CheckBox box=(CheckBox)sender;

//The TableCell the control is in
TableCell cell=(TableCell)box.Parent;

//The DataGridItem the cell belongs to
DataGridItem dgItem=(DataGridItem)cell.Parent;
}

With that DataGridItem you get for example ItemIndex of the DataGridItem you
are into. It is the same would be e.Item in ItemCommand,ItemDataBound or
ItemCreated. And you can then again get the PK of the current row and so on
via DataKeys collection.
 

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