GridView DataBinding Events

This is a well commented example for a GridView with implementation of RowDataBound and DataBound events. I also demonstrate in it some of the important properties of GridView, like the slight differences when dealing with Grid Paging, Rows, Cells, and Columns. I prefered to heavily comment the code than to write separate paragraphs describing it as I do believe that the code is what gets the idea in a direct way.

The example is a simple page that uses SqlDataSource to connect to a SQL Server 2005 Express database and show the results on a GridView with paging capability.

Disclaimer:

Many parts of the code don’t show the best practices for their situation and those are only included for demonstration purpose as they are not the main focus of the example.

Let’s start with the code behind of the page:

As it’s the most important part

[pastacode manual=”%2F******************************************************************%0A%20*%20The%20sample%20is%20provided%20AS%20IS%20without%20any%20warranty%0A%20*%20All%20rights%20reserved%20(C)%202005%2C%20Mohamed%20Meligy%0A%20*%20https%3A%2F%2Fwww.gurustop.net%0A%20*%20Distribution%20of%20this%20code%20without%20this%20note%20is%20prohibited.%0A%20******************************************************************%2F%0A%2F%2FDefault%20%22using%22%20set%20of%20a%20new%20System.Web.UI.Page%20Visual%20Studio%202005%20template%3A%0Ausing%20System%3B%0Ausing%20System.Data%3B%0Ausing%20System.Configuration%3B%0Ausing%20System.Collections%3B%0Ausing%20System.Web%3B%0Ausing%20System.Web.Security%3B%0Ausing%20System.Web.UI%3B%0Ausing%20System.Web.UI.WebControls%3B%0Ausing%20System.Web.UI.WebControls.WebParts%3B%0Ausing%20System.Web.UI.HtmlControls%3B%0A%2F%2F%2F%20%3Csummary%3E%0A%2F%2F%2F%20To%20test%20the%20GridView%20behavior%20in%20action%2C%0A%2F%2F%2F%20you%20need%20to%20have%20SQL%20Server%20Express%20installed%20(comes%20by%20default%20with%20VS2005)%2C%0A%2F%2F%2F%20and%20Northwind%20database%20attached%20to%20it%0A%2F%2F%2F%20(attaches%20by%20default%20when%20you%20select%20%22Quickstart%20Tutorials%22%0A%2F%2F%2F%20from%20the%20.NET%20Framework%202.0%20SDK%20Programs%20menu%2C%20and%20choose%20to%20install%20them).%0A%2F%2F%2F%20Alternatively%2C%20change%20the%20ConnectionString%20property%20of%20the%20SqlDataSource%0A%2F%2F%2F%20to%20point%20to%20another%20installed%20instance%0A%2F%2F%2F%20of%20SqlServer%202000%20or%20SqlServer%202005%20that%20has%20Northwind%20database%20attached.%0A%2F%2F%2F%20%3C%2Fsummary%3E%0Apublic%20partial%20class%20GridViewSamplePage%20%3A%20System.Web.UI.Page%0A%7B%0A%20%20%20%20protected%20void%20Page_Load(object%20sender%2C%20EventArgs%20e)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2FLimiting%20redundancy%20of%20useless%20execution.%0A%20%20%20%20%20%20%20%20%2F%2FYou%20do%20no%20need%20to%20check%20IsCallback%20if%20you%0A%20%20%20%20%20%20%20%20%2F%2F%20don’t%20have%20controls%20with%20Callback%20Enabled.%0A%20%20%20%20%20%20%20%20if%20(!IsPostBack%20%26%20!IsCallback)%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FThis%20makes%20performing%20paging%20and%20sorting%20uses%20AJAX.%0A%20%20%20%20%20%20%20%20%20%20%20%20EmployeesGridView.EnableSortingAndPagingCallbacks%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FSmall%20number%20so%20that%20I%20can%20see%20many%20pages%20out%20of%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%209%20rows%20only%20(The%20total%20Rows%20Count%20of%20Northwind’s%20Employees%20DataTable).%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FAlso%20selected%20it%20in%20a%20way%20that%20last%20Page%20Rows%20Count%20will%20be%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20different%20than%20other%20pages.%0A%20%20%20%20%20%20%20%20%20%20%20%20EmployeesGridView.PageSize%20%3D%202%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(!IsPostBack)%20%20%20%2F%2FJust%20to%20prove%20the%20AJAX%20thing.%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PostBackStatus.Text%20%3D%20%22Not%20PostBack%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%2F%2FNever%20happens%2C%20as%20I%20don’t%20require%20a%20PostBack.%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PostBackStatus.Text%20%3D%20%22Page%20Is%20PostBack%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2F%2F%20%3Csummary%3E%0A%20%20%20%20%2F%2F%2F%20Executes%20when%20the%20databinding%20is%20complete%0A%20%20%20%20%2F%2F%2F%20%3C%2Fsummary%3E%0A%20%20%20%20protected%20void%20EmployeesGridView_DataBound(object%20sender%2C%20EventArgs%20e)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2FI’ll%20use%20it%20to%20show%20which%20set%20of%20Rows%20I’m%20showing%20in%20the%20page.%0A%20%20%20%20%20%20%20%20EmployeesGridView.ShowFooter%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%2F%2FSimilar%20to%3A%20EmployeesGridView.FooterRow.Visible%20%3D%20true%0A%20%20%20%20%20%20%20%20%2F%2FStretching%20the%20first%20cell%20to%20fill%20the%20whole%20FooterRow%3A%0A%20%20%20%20%20%20%20%20%2F%2FRemoving%20all%20non%20needed%20cells%2C%0A%20%20%20%20%20%20%20%20%2F%2F%20from%20the%20end%20to%20start%0A%20%20%20%20%20%20%20%20%2F%2F%20(so%20that%20the%20Cells%20collection%20is%20not%20recreated%20with%20every%20Removal).%0A%20%20%20%20%20%20%20%20for%20(int%20cellNum%20%3D%20EmployeesGridView.Columns.Count%20-%201%3B%20cellNum%20%3E%200%3B%20cellNum–)%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20EmployeesGridView.FooterRow.Cells.RemoveAt(cellNum)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20EmployeesGridView.FooterRow.Cells%5B0%5D.ColumnSpan%20%3D%20EmployeesGridView.Columns.Count%3B%0A%20%20%20%20%20%20%20%20EmployeesGridView.FooterRow.Cells%5B0%5D.HorizontalAlign%20%3D%20HorizontalAlign.Center%3B%0A%20%20%20%20%20%20%20%20int%20startIndex%20%3D%20EmployeesGridView.PageIndex%20!%3D%20EmployeesGridView.PageCount%20-%201%20%3F%0A%20%20%20%20%20%20%20%20%2F%2FNot%20in%20last%20page.%0A%20%20%20%20%20%20%20%20EmployeesGridView.PageSize%20*%20EmployeesGridView.PageIndex%0A%20%20%20%20%20%20%20%20%2F%2FEmployeesGridView%20Rows%20Count%20is%20Count%20of%20the%20Rows%20of%20the%20current%20page%2C%20so%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20unless%20Paging%20is%20Disabled%2C%20this%20is%20not%20total%20Rows%20Count.%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FgridViewTotalCount%20is%20declared%20and%20assigned%20at%20the%20end%20of%20this%20code.%0A%20%20%20%20%20%20%20%20%3A%20gridViewTotalCount%20-%20EmployeesGridView.PageSize%20%2B%20EmployeesGridView.Rows.Count%3B%0A%20%20%20%20%20%20%20%20EmployeesGridView.FooterRow.Cells%5B0%5D.Text%20%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20string.Format%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(%22Showing%20Employees%20%7B0%7D%20to%20%7B1%7D%20of%20%7B2%7D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20startIndex%20%2B%201%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20startIndex%20%2B%20EmployeesGridView.Rows.Count%2C%20gridViewTotalCount)%3B%0A%20%20%20%20%7D%0A%20%20%20%20TableCell%20myCell%20%3D%20null%3B%0A%20%20%20%20protected%20void%20EmployeesGridView_RowDataBound(object%20sender%2C%20GridViewRowEventArgs%20e)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2FI’ll%20add%20that%20to%20every%20Row%20bound%20in%20the%20GridView.%0A%20%20%20%20%20%20%20%20myCell%20%3D%20new%20TableCell()%3B%0A%20%20%20%20%20%20%20%20%2F%2FNote%20that%20for%20the%20header%2C%20footer%2C%20and%20separator%20rows%2C%20DataItemIndex%20is%20-1%0A%20%20%20%20%20%20%20%20myCell.Text%20%3D%20e.Row.DataItemIndex.ToString()%3B%0A%20%20%20%20%20%20%20%20%2F%2FNote%20that%20when%20you%20add%20the%20cell%2C%0A%20%20%20%20%20%20%20%20%2F%2F%20this%20does%20NOT%20increase%20the%20GridView%20Columns%20Count.%0A%20%20%20%20%20%20%20%20e.Row.Cells.Add(myCell)%3B%0A%20%20%20%20%20%20%20%20%2F%2FThe%20past%20lines%20will%20affect%20also%20HeaderRow%2C%20FooterRow%2C%20and%20even%20Pager%2C%0A%20%20%20%20%20%20%20%20%2F%2F%20you’ll%20see%20when%20you%20run%20that%20this%20is%20not%20a%20desired%20behavior.%0A%20%20%20%20%20%20%20%20%2F%2FYou%20can%20limit%20your%20code%20on%20condition.%20This%20is%20the%20recommended%20way.%0A%20%20%20%20%20%20%20%20if%20(e.Row.RowType%20%3D%3D%20DataControlRowType.DataRow)%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FDo%20your%20UI%20logic%20now%20for%20data%20binding%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20much%20similar%20to%20DataGrid%20ItemDataBound.%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FExample%3A%20changing%20color%20of%20text%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20for%20normal%20and%20alternative%20rows%20ONLY%20by%20code.%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(e.Row.RowIndex%20%25%202%20%3D%3D%200)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e.Row.Style%5B%22color%22%5D%20%3D%20%22%230000ff%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e.Row.Style%5B%22color%22%5D%20%3D%20%22%2300bb00%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FThis%20is%20the%20EmployeeID%20Cell%0A%20%20%20%20%20%20%20%20%20%20%20%20e.Row.Cells%5B0%5D.Text%20%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22I’m%20alternative%20employee%20with%20code%3A%20%22%20%2B%20e.Row.Cells%5B0%5D.Text%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FAnother%20sample%20change%20making%20use%20of%20the%20DataItem%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20This%20is%20specific%20to%20our%20case%20where%20the%20GridView%20is%20bound%20to%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20first%20DataTable%20in%20the%20DataSet%20returnd%20by%20the%20EmployeesSqlSource.%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20This%20is%20when%20SqlDataSource%20DataSourceMode%20%3D%20DataSet%20(Default)%0A%20%20%20%20%20%20%20%20%20%20%20%20DataRowView%20rowView%20%3D%20(DataRowView)e.Row.DataItem%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.Row.Cells%5BEmployeesGridView.Columns.Count%20-%201%5D.Text%20%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20int.Parse(rowView%5B%22Extension%22%5D%20as%20string).ToString(%22%23%23%23-%23%23%22)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20int%20gridViewTotalCount%3B%0A%20%20%20%20protected%20void%20EmployeesSqlSource_Selected%0A%20%20%20%20%20%20%20%20(object%20sender%2C%20SqlDataSourceStatusEventArgs%20e)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2FGridView%20has%20no%20way%20of%20telling%20total%20Rows%20Count%20when%20paging%20is%20enabled.%0A%20%20%20%20%20%20%20%20gridViewTotalCount%20%3D%20e.AffectedRows%3B%0A%20%20%20%20%7D%0A%7D” provider=”manual” lang=”c#”/]

Now to the page XHTML source:

[pastacode manual=”%3C%25%40%20Page%20Language%3D%22C%23%22%20AutoEventWireup%3D%22true%22%20%0A%20%20%20%20CodeBehind%3D%22GridViewSamplePage.aspx.cs%22%0A%20Inherits%3D%22GridViewSamplePage%22%0A%20%20%20%20%25%3E%0A%3C!DOCTYPE%20html%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20XHTML%201.0%20Transitional%2F%2FEN%22%0A%20%20%20%20%20%20%20%20%22http%3A%2F%2Fwww.w3.org%2FTR%2Fxhtml1%2FDTD%2Fxhtml1-transitional.dtd%22%3E%0A%3Chtml%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%0A%3Chead%20id%3D%22PageHeader%22%20runat%3D%22server%22%3E%0A%20%20%20%20%3Ctitle%3EGridView%20Sample%3C%2Ftitle%3E%0A%3C%2Fhead%3E%0A%3Cbody%3E%0A%20%20%20%20%3Cform%20id%3D%22ServerForm%22%20runat%3D%22server%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%3E%0A%20%20%20%20%20%20%20%20Postback%20Status%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ALabel%20ID%3D%22PostBackStatus%22%20runat%3D%22server%22%3E%3C%2Fasp%3ALabel%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3AGridView%20ID%3D%22EmployeesGridView%22%20runat%3D%22server%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20AutoGenerateColumns%3D%22False%22%20AllowPaging%3D%22True%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20DataSourceID%3D%22EmployeesSqlSource%22%20DataKeyNames%3D%22EmployeeID%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20OnDataBound%3D%22EmployeesGridView_DataBound%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20OnRowDataBound%3D%22EmployeesGridView_RowDataBound%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CColumns%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ABoundField%20DataField%3D%22EmployeeID%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HeaderText%3D%22EmployeeID%22%20InsertVisible%3D%22False%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ReadOnly%3D%22True%22%20SortExpression%3D%22EmployeeID%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ABoundField%20DataField%3D%22LastName%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HeaderText%3D%22LastName%22%20SortExpression%3D%22LastName%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ABoundField%20DataField%3D%22FirstName%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HeaderText%3D%22FirstName%22%20SortExpression%3D%22FirstName%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ABoundField%20DataField%3D%22Title%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HeaderText%3D%22Title%22%20SortExpression%3D%22Title%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ABoundField%20DataField%3D%22BirthDate%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HeaderText%3D%22BirthDate%22%20SortExpression%3D%22BirthDate%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ABoundField%20DataField%3D%22PostalCode%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HeaderText%3D%22PostalCode%22%20SortExpression%3D%22PostalCode%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ABoundField%20DataField%3D%22Extension%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HeaderText%3D%22Extension%22%20SortExpression%3D%22Extension%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2FColumns%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CEmptyDataTemplate%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20style%3D%22text-align%3A%20center%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20No%20Data%20Available.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2FEmptyDataTemplate%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fasp%3AGridView%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Casp%3ASqlDataSource%20ID%3D%22EmployeesSqlSource%22%20runat%3D%22server%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ConnectionString%3D%0A%22Data%20Source%3DMELIGYSQLEXPRESS%3BInitial%20Catalog%3DNorthwind%3BIntegrated%20Security%3DTrue%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ProviderName%3D%22System.Data.SqlClient%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SelectCommand%3D%0A%22SELECT%20%5BEmployeeID%5D%2C%20%5BLastName%5D%2C%20%5BFirstName%5D%2C%20%5BTitle%5D%2C%20%5BBirthDate%5D%2C%20%5BPostalCode%5D%2C%20%5BExtension%5D%20FROM%20%5BEmployees%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20OnSelected%3D%22EmployeesSqlSource_Selected%22%3E%3C%2Fasp%3ASqlDataSource%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fform%3E%0A%3C%2Fbody%3E%0A%3C%2Fhtml%3E” provider=”manual” lang=”asp”/]

Samples of the output of the code:

Hope that you like it.

24 thoughts on “GridView DataBinding Events

  1. Congrats on the new blog, so are you giving up the geeks with blogs one?

  2. I’m using cross posting right now until I settle on something! I’m worried that this blog might be more restricted in topics than GWB. I talked to the owners of both, and still not having a final decision yet!!

  3. Wishing you the best,
    I subscribed for both now so keep the good posts coming.

  4. It’s easy, Amr :). Thanks to feedburner!

    You can subscribe to http://feeds.feedburner.com/GuruStop
    This feed now points to my old blog, but, everything I’ll post here is automatically cross posted there. Eventually, I’ll make it loaded from this new blog. I’ll do after I reach twenty-something posts, God Willing.
    So, just subscribe to that, and you’ll not even realize the change when it takes place – I hope.

    thank you for caring anyway.

  5. It’t cool, but what if I use database paging and the ObjectDatasource. When I test this situation, the result is that the e.AffectedRows equal -1 in the ObjectDataSource’s OnSelected event handle.
    the Selecting method is List GetMessages(),and the SQL for selecting is:
    SELECT * FROM (SELECT MessageID,[From],Subject,CreatedDate,IsRead,IsReply,ReturnReceipt,FolderID,ROW_NUMBER() OVER ( ORDER BY CreatedDate DESC) AS RowNum FROM Mail_MailMessages WHERE FolderID=@FolderID )Messages
    WHERE Messages.RowNum BETWEEN (@PageIndex*@PageSize+1) AND ((@PageIndex+1)*@PageSize) ORDER BY CreatedDate

  6. how would you place two table data in one gridview
    sharmab07@gmail.com

  7. really its good ………………………………..

  8. Hi! It was really awesome as I’m a beginner to .Net but I could easily understand the GridView DataBinding. Thanks once again Mohammed…

  9. The article is good.

  10. pls write ur code in VB.Net also.So that the readers will have both knowledge as well as persons who dnt any one can get knowledge abt the code which they require.

  11. hello.

    thank you for this article.I dont know in vs2008 instead of ItemDataBound Ican use which one of Event??you know in visual studio 2008 we dont have ItemDataBound.

    I ask you Please help me.

  12. You forgot to actually include an example of the actual DataBinding event. Article should have been titled what to do after the data is bound.

  13. […] GuruStop.NET » GridView DataBinding EventsJan 25, 2008 … This is a well commented example for a GridView with implementation of RowDataBound and DataBound events. I also demonstrate in it some … […]

  14. The C# GridView databinding guide shows databinding to a single level of data or multiple levels of hierarchical data.

  15. nba 2k16 mt for sale ps4

    Unbelievably user friendly site. Tremendous details offered on few gos to

  16. cheap csgo keys

    Incredibly user pleasant website. Tremendous information available on few clicks

  17. free my team coins

    Maintain the good job and delivering in the crowd!

  18. blackhatlinks.com/index_dofollow.php

    elqhdhbmw sstht dbgsfiy dejg plngdjpsumbgbqc

  19. … [Trackback]

    […] Find More on|Find More|Find More Infos here|Here you can find 89053 additional Infos|Informations on that Topic: gurustop.net/blog/2008/01/25/gridview-databinding-events/ […]

  20. … [Trackback]

    […] Read More here|Read More|Find More Infos here|Here you will find 96010 more Infos|Informations on that Topic: gurustop.net/blog/2008/01/25/gridview-databinding-events/ […]

  21. … [Trackback]

    […] Read More on|Read More|Read More Infos here|There you will find 95081 additional Infos|Infos on that Topic: gurustop.net/blog/2008/01/25/gridview-databinding-events/ […]

  22. … [Trackback]

    […] Find More on|Find More|Read More Informations here|There you will find 88922 additional Informations|Informations on that Topic: gurustop.net/blog/2008/01/25/gridview-databinding-events/ […]

Leave a Reply

Your email address will not be published. Required fields are marked *