Click here to Skip to main content
Licence 
First Posted 19 Nov 2003
Views 71,167
Bookmarked 39 times

Changing a column in multiple DataGrid rows using checkboxes

By | 19 Nov 2003 | Article
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.

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.

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.

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

About the Author

Mesrop Simonian

Web Developer

United States United States

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralMy vote of 5 Pinmembermanoj kumar choubey19:29 7 Feb '12  
GeneralUsing checkbox in autogenerated datagrid Pinmemberashasprabhu21:12 20 Jun '07  
QuestionValue in TextBox should be changed to required formate Pinmemberkishore19@hotmail.com6:45 28 Dec '06  
QuestionHow to add the multiple edit in this auto generated script PinsussAnonymous16:20 4 Sep '05  
GeneralMultiple checkboxes selection. PLEASE HELP. PinmembermisssBlur19:56 3 Apr '04  
GeneralChecking if an item is checked before post back PinsussEsterbarn22:15 27 Nov '03  
GeneralRe: Checking if an item is checked before post back PinmemberMesrop Simonian6:52 2 Dec '03  

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

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

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120528.1 | Last Updated 20 Nov 2003
Article Copyright 2003 by Mesrop Simonian
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid