We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How to loop through all cell of a DataGrid in VB.net

Thread ID:

Created:

Updated:

Platform:

Replies:

427 Jun 25,2002 02:30 PM UTC Jun 29,2002 02:52 PM UTC WinForms 7
loading
Tags: FAQ
Peter
Asked On June 25, 2002 02:30 PM UTC

I found some code I liked very much in ASP.net. I'm trying to modify it so it works with VB.NET. No luck so far. There is no Items property of the grid. Please help. Any other idea will help. Thank you! Private Sub SetHierarchical(ByVal bExpanded As Boolean) Dim iCount As Int32 For iCount = 0 To dgValues.Items.Count - 1 'set the bg colour of the Customer and Order rows and the plus minus cells If dgValues.Items(iCount).Cells(1).Text <> " " Then dgValues.Items(iCount).BackColor = System.Drawing.Color.Wheat dgValues.Items(iCount).Cells(0).BackColor = System.Drawing.Color.Tan End If If dgValues.Items(iCount).Cells(3).Text <> " " Then dgValues.Items(iCount).BackColor = System.Drawing.Color.AntiqueWhite dgValues.Items(iCount).Cells(2).BackColor = System.Drawing.Color.Tan End If 'set the bg colour of the total rows If dgValues.Items(iCount).Cells(4).Text = "Customer Total" Then _ dgValues.Items(iCount).BackColor = System.Drawing.Color.AntiqueWhite If bExpanded Then 'hide + on Test all rows where there is not an expandable node If dgValues.Items(iCount).Cells(3).Text = " " Then dgValues.Items(iCount).Cells(2).Controls(0).Visible = False Else 'set the minus sign CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).Text = "-" CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).CssClass = "PlusMinus" End If 'hide + on all Collection rows where there is not an expandable node If dgValues.Items(iCount).Cells(1).Text = " " Then dgValues.Items(iCount).Cells(0).Controls(0).Visible = False Else 'set the minus sign CType(dgValues.Items(iCount).Cells(0).Controls(0), LinkButton).Text = "-" End If Else 'hide + on all Order rows where there is not an expandable node If dgValues.Items(iCount).Cells(3).Text = " " Then dgValues.Items(iCount).Cells(2).Controls(0).Visible = False Else 'set the plus sign CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).Text = "+" CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).CssClass = "PlusMinus" End If 'hide + on all Customer rows where there is not an expandable node If dgValues.Items(iCount).Cells(1).Text = " " Then dgValues.Items(iCount).Cells(0).Controls(0).Visible = False Else 'set the plus sign CType(dgValues.Items(iCount).Cells(0).Controls(0), LinkButton).Text = "+" CType(dgValues.Items(iCount).Cells(0).Controls(0), LinkButton).CssClass = "PlusMinus" End If 'hide all child nodes and rows of the root nodes If dgValues.Items(iCount).Cells(1).Text = " " Then dgValues.Items(iCount).Visible = < FONT color = #0000ff > False End If Next End Sub

Clay Burch [Syncfusion]
Replied On June 25, 2002 05:32 PM UTC

> I found some code I liked very much in ASP.net. I'm trying to modify it so it works with VB.NET. No luck so far. There is no Items property of the grid. > Please help. Any other idea will help. > Thank you! > > > > > > Private Sub SetHierarchical(ByVal bExpanded As Boolean) > Dim iCount As Int32 > For iCount = 0 To dgValues.Items.Count - 1 > 'set the bg colour of the Customer and Order rows and the plus minus cells > If dgValues.Items(iCount).Cells(1).Text <> " " Then > dgValues.Items(iCount).BackColor = System.Drawing.Color.Wheat > dgValues.Items(iCount).Cells(0).BackColor = System.Drawing.Color.Tan > End If > If dgValues.Items(iCount).Cells(3).Text <> " " Then > dgValues.Items(iCount).BackColor = System.Drawing.Color.AntiqueWhite > dgValues.Items(iCount).Cells(2).BackColor = System.Drawing.Color.Tan > End If > 'set the bg colour of the total rows > If dgValues.Items(iCount).Cells(4).Text = "Customer Total" Then _ > dgValues.Items(iCount).BackColor = System.Drawing.Color.AntiqueWhite > If bExpanded Then > 'hide + on Test all rows where there is not an expandable node > If dgValues.Items(iCount).Cells(3).Text = " " Then > dgValues.Items(iCount).Cells(2).Controls(0).Visible = False > Else > 'set the minus sign > CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).Text = "-" > CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).CssClass = "PlusMinus" > End If > 'hide + on all Collection rows where there is not an expandable node > If dgValues.Items(iCount).Cells(1).Text = " " Then > dgValues.Items(iCount).Cells(0).Controls(0).Visible = False > Else > 'set the minus sign > CType(dgValues.Items(iCount).Cells(0).Controls(0), LinkButton).Text = "-" > End If > Else > 'hide + on all Order rows where there is not an expandable node > If dgValues.Items(iCount).Cells(3).Text = " " Then > dgValues.Items(iCount).Cells(2).Controls(0).Visible = False > Else > 'set the plus sign > CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).Text = "+" > CType(dgValues.Items(iCount).Cells(2).Controls(0), LinkButton).CssClass = "PlusMinus" > End If > 'hide + on all Customer rows where there is not an expandable node > If dgValues.Items(iCount).Cells(1).Text = " " Then > dgValues.Items(iCount).Cells(0).Controls(0).Visible = False > Else > 'set the plus sign > CType(dgValues.Items(iCount).Cells(0).Controls(0), LinkButton).Text = "+" > CType(dgValues.Items(iCount).Cells(0).Controls(0), LinkButton).CssClass = "PlusMinus" > End If > 'hide all child nodes and rows of the root nodes > If dgValues.Items(iCount).Cells(1).Text = " " Then dgValues.Items(iCount).Visible = < FONT color = #0000ff > False > End If > Next > End Sub > > > > > > > To get at the value of a cell in w Windows Forms datagrid, you use the row and column values as indexers on the datagrid object. So, to get the value of cell 2,3, you would use code such as Dim cellValue as object = dgValues(2,3) But you cannot set BackColor and controls, etc using the type of code you have above. It is considerably more work. You can see samples of how to vary a cell color at George Shepherd's Windows Forms FAQ contains an entry entitled: How do I color a individual cell depending upon its value or some external method? Check it out at: http://www.syncfusion.com/faq/winforms/search/745.asp

Peter Davis
Replied On June 26, 2002 09:51 AM UTC

Clay, Thank you so very much for your answer. You showed me how to grab one cell. The problem I have is that I still don't understand how do I loop through each one cell of the current grid in VB.NET. The syntaxis shown in the example is DataGrid.Items.Count-1. But there isn't such property in vb.net ?? Thank you again.

Clay Burch [Syncfusion]
Replied On June 26, 2002 10:05 AM UTC

George Shepherd's Windows Forms FAQ contains an entry entitled: How can I get the number of rows in my DataGrid? Check it out at: http://www.syncfusion.com/faq/winforms/search/858.asp Another way is to access the underlying datatable and get the count from the Rows collection, myDataTable.Rows.Count.

Peter
Replied On June 27, 2002 10:32 AM UTC

Clay, thank you again. I'm able to count the rows and the columns in the grid without a problem. I can't make it to loop through each cell. Lets say I have (i) rows and (j) columns. How do I loop through each (i)(j) of the grig in VB.NET Peter

Administrator [Syncfusion]
Replied On June 27, 2002 11:10 AM UTC

> Clay, > thank you again. I'm able to count the rows and the columns in the grid without a problem. I can't make it to loop through each cell. Lets say I have (i) rows and (j) columns. How do I loop through each (i)(j) of the grig in VB.NET > Peter > dim icount as int32 dim jcount as int32 for icount = 1 to i for jcount = 1 to j myDataGrid(i,j).whatever next j next icount :-)

Clay Burch [Syncfusion]
Replied On June 27, 2002 11:28 AM UTC

dim icount as int32 dim jcount as int32 for icount = 1 to i for jcount = 1 to j Console.WriteLine(myDataGrid(icount,jcount).ToString()) next jcount next icount

Peter
Replied On June 29, 2002 02:52 PM UTC

Thank you for your help. Itried the code you posted but it doesn't work. I'm receiving an error: "Can't convert integer into System.Windows.Froms.DataGridCell" ???

CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Please sign in to access our forum

or the page will be automatically redirected to sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

;