Solved

Specifying Gridview Row Cells

Posted on 2008-09-30
3
459 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
3 Comments
 
LVL 7

Expert Comment

by:ajolly
Comment Utility
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
Comment Utility
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
Comment Utility
Thanks both,
prairiedog, this is exactly what I was looking for.

Rit
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

This article discusses the ASP.NET AJAX ModalPopupExtender control. In this article we will show how to use the ModalPopupExtender control, how to display/show/call the ASP.NET AJAX ModalPopupExtender control from javascript, how to show/display/cal…
I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

771 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now