Solved

Specifying Gridview Row Cells

Posted on 2008-09-30
3
466 Views
Last Modified: 2008-10-01
Hi All,

Say I have the following RowDataBound event..

Rather than specifying the cell using it's ordinal value is there a more specific way that won't mean that I need to check/ update this event every time a new column is added to the Gridview control?

Many thanks,

Rit
Sub ProductGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
 
    If e.Row.RowType = DataControlRowType.DataRow Then
    
	Dim myQty as Integer = CInt(e.Row.Cells(1).Text)
 
	If myQty > 0 then
		e.Row.Cells(3).Text = "In Stock"
	Else
		e.Row.Cells(3).Text = "Not In Stock"
	End If 
       
    End If
    
End Sub

Open in new window

0
Comment
Question by:rito1
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 7

Expert Comment

by:ajolly
ID: 22605148
I use C#, so I am writing solution in C#.

One part I have tried to keep in VB.Net which was copied from yours.
// C# Code
Private int QuantityColumnIndex;
Private int AvailabilityColumnIndex;
 
Page_Load()
{
    for(int i = 0; i < ProductGridView.Columns.Count; i++)
    {
        if (ProductGridView.Columns[i].HeaderText == "Quantity")
        {
                QuantityColumnIndex = i;
        }
        if (ProductGridView.Columns[i].HeaderText == "Availability")
        {
                AvailabilityColumnIndex = i;
        }
    }
}
 
// VB.Net Code
Sub ProductGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
 
    If e.Row.RowType = DataControlRowType.DataRow Then
    
        Dim myQty as Integer = CInt(e.Row.Cells(QuantityColumnIndex).Text)
 
        If myQty > 0 then
                e.Row.Cells(AvailabilityColumnIndex).Text = "In Stock"
        Else
                e.Row.Cells(AvailabilityColumnIndex).Text = "Not In Stock"
        End If 
       
    End If
    
End Sub

Open in new window

0
 
LVL 22

Accepted Solution

by:
prairiedog earned 500 total points
ID: 22607497
1. Convert the Quantity and Availability BoundFields into a TemplateFields
2. In your code, do something like this:
 

Sub ProductGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
 
    If e.Row.RowType = DataControlRowType.DataRow Then
    
		Dim lbl As Label = CType(e.Row.FindControl("lblQuantity"), Label 'Change lblQuantity to your Label's name
		Dim lbl2 As Label = CType(e.Row.FindControl("lblAvailability"), Label) 'Change the name if needed
		
		If (lbl IsNot Nothing And lbl2 IsNot Nothing) Then		
	        Dim myQty as Integer = CInt(lbl.Text)	 
	        If myQty > 0 then
	                lbl2.Text = "In Stock"
	        Else
	                lbl2.Text = "Not In Stock"
	        End If 
		End If
       
    End If
    
End Sub

Open in new window

0
 
LVL 1

Author Comment

by:rito1
ID: 22614110
Thanks both,
prairiedog, this is exactly what I was looking for.

Rit
0

Featured Post

Enroll in July's Course of the Month

July's Course of the Month is now available! Enroll to learn HTML5 and prepare for certification. It's free for Premium Members, Team Accounts, and Qualified Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

615 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question