Click here to Skip to main content
15,886,199 members
Articles / Web Development / ASP.NET
Article

Changing a column in multiple DataGrid rows using checkboxes

Rate me:
Please Sign up or sign in to vote.
2.90/5 (21 votes)
19 Nov 20031 min read 86.1K   39   7
This article demonstrates how to apply a dropdownlist value to multiple rows in a DataGrid.

Sample Image - chk.gif

Introduction

This article will demonstrate how to change the value of a DataGrid column in multiple rows using checkboxes. This is a very common problem and it's easily implementable, so without much ado, let's get to the point.

Before I start, though, I'll put forward one assumption I make in this article, make sure your code meets the underlying requirement, otherwise you'll have to do some extra work.

I'll assume that the data bound to the grid is also editable through some object in your code (in other words, DataGrid columns are properties of one object) and you have an update routine for this object. For example, in our case, the object we're using is PurchaseOrder, and the column (property) is ApprovalStatus.

First off, let's start with a simple bind routine. The getApproverPOs function simply returns a DataTable object, you can replace it with your own DataTable.

VB
Sub BindGrid()
    dgPO.DataSource = PurchaseOrder.getApproverPOs
    dgPO.DataBind()
End Sub

In our example, we have a dropdown named lstStatus and a button named btnApply.

The Iterate routine which follows next will loop through each row and see if the checkbox (named chk) in the DataGrid's first template column is checked, if so, it will load PurchaseOrder, set a new ApprovalStatus, and update the changes.

VB
Public Sub Iterate() 
 Dim DGItem As DataGridItem
 Dim chkSel As System.Web.UI.WebControls.CheckBox
 Dim po As PurchaseOrder
 For Each DGItem In dgPO.Items
  chkSel = DGItem.FindControl("chk")
  If chkSel.Checked Then
    po = PurchaseOrder.getPO(DGItem.Cells(1).Text) 'pass the po number to get
    po.ApprovalStatus = lstStatus.SelectedItem.Value
    'send an email to original PO poster
    PurchaseOrder.NotifyPoster(po)
    po.Update()
  End If
 Next
End Sub

And finally, we need an event handler for our button which will point to the Sub above. We use Response.Redirect in the end to refresh the checkboxes, as well as the ApprovalStatus column.

VB
Private Sub btnApply_Click(ByVal sender _
  As System.Object, ByVal e As System.EventArgs) _
  Handles btnApply.Click
    Iterate()
    Response.Redirect("thissamefile.aspx")
End Sub

That's all there is! Hope this was helpful.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMy vote of 5 Pin
Manoj Kumar Choubey7-Feb-12 19:29
professionalManoj Kumar Choubey7-Feb-12 19:29 
GeneralUsing checkbox in autogenerated datagrid Pin
ashasprabhu20-Jun-07 21:12
ashasprabhu20-Jun-07 21:12 
QuestionValue in TextBox should be changed to required formate Pin
kishore19@hotmail.com28-Dec-06 6:45
kishore19@hotmail.com28-Dec-06 6:45 
QuestionHow to add the multiple edit in this auto generated script Pin
Anonymous4-Sep-05 16:20
Anonymous4-Sep-05 16:20 
GeneralMultiple checkboxes selection. PLEASE HELP. Pin
misssBlur3-Apr-04 19:56
misssBlur3-Apr-04 19:56 
GeneralChecking if an item is checked before post back Pin
Esterbarn27-Nov-03 22:15
Esterbarn27-Nov-03 22:15 
GeneralRe: Checking if an item is checked before post back Pin
Mesrop Simonian2-Dec-03 6:52
Mesrop Simonian2-Dec-03 6:52 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.