Highlight row according to 2nd column value using ASP.NET datagrid

I want to change the background colour of rows on a datagrid depending on the value of the 2nd cell in each row.

I've seen a lot of examples of subroutines but I can't see how they these subroutines are called so as to update the datagrid.  My datagrid has id="dgrdStock".  How can I:
1) get a subroutine to set the colour of rows depending on cell values and
2) apply it to my datagrid?

The code below is lifted and modified from other solutions I've seen - but untested as I don;t know how to call this subroutine.
Sub dgrdStock_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgrdStock.CellPainting
	Select Case dgrdStock.Rows(e.RowIndex).Cells.Item(2).Value
		Case "Available UK"
			dgrdStock.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Green
		Case "Available Europe"
			dgrdStock.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Blue
		Case Else
			dgrdStock.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Red
		End Select
End Sub

Open in new window

LVL 1
BeamsonAsked:
Who is Participating?
 
BeamsonAuthor Commented:
In the end, I had to abandon this line of question and do without cell colouring.
0
 
Obadiah ChristopherCommented:
Are you using ASP.Net? or is it a windows forms application.

As far as I know there's no Cell Painting event in asp.net datagrid or gridview.
0
 
BeamsonAuthor Commented:
Its for an ASP.NET/ VB web page written using a text editor. ASP.NET/ VB.

The code I've cobbled together has been taken from the numerous sample codes I've got on other posts (which then don't explain how/where the subs are called).  You can probably see what i'm trying to achieve but I need some help getting it right.
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
Obadiah ChristopherCommented:
Ok.

Well this won't work for u.

which version of asp.net are u using? 2.0 and higher?
0
 
BeamsonAuthor Commented:
2.0 and higher - yes. (I believe the latest 3.5 framework is installed on the server)
0
 
Obadiah ChristopherCommented:
Well I suggest u use the gridview control instead of the datagrid control.

Then handle the rowdatabound event of the gridview control.


To handle the rowdatabound of gridview, go to the properties of the gridview and click on the events icon. (thunder)

u 'll see a rowdatabound event. Double click on that..

write this code in that event


 
 If e.Row.RowType = DataControlRowType.DataRow Then
     If e.Row.Cells(2) = "Y" Then
         e.Row.Cells(5).BackColor = System.Drawing.Color.Red
     End If
 End If

Open in new window

0
 
BeamsonAuthor Commented:
I'm writing in a text editor (well, Dreamweaver)

My problem is not with the logic but with getting the coding right.
The existing code has:
a single datagrid
a single button
a single subroutine which fires on the button's onclick event which retrieves the records and binds them to the datagrid.

What code do I need to need to add (and where) to solve the row colouring effect?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.