Click here to Skip to main content
15,867,686 members
Articles / Web Development / ASP.NET
Article

Steps to Write GridView PostBack Events

Rate me:
Please Sign up or sign in to vote.
3.63/5 (22 votes)
6 Jan 20062 min read 283.3K   66   31
This is an article about how to add events programmatically for GridView controls, for selection,deleting,sorting etc.

Introduction

I was playing with the GridView control and suddenly the question came up in my mind that how could I select a GridView control row while clicking on any area of the GridView control rather than depending on the Select button of the GridView control. Then I Googled for some time but could not find the exact solution. A lot of solutions were available for the selection of a row but I could not find a solution which when I clicked on the GridView, updates the DetailView automatically by grabbing the SelectionIndexChanged event. Following are the results of my search for a solution. Please let me know if this can be done by any other way.

Using the code

First, you need to bind the RowDataBound event to the GridView. Then in that event, write the following code.

In this code, the first line checks if the ItemIndex passed is proper. Then it adds the script for mouse over for the cursor to change to the Hand cursor. In the next line, it adds the postback client event by calling the GetPostBackClientEvent function with two arguments. The first argument contains the GridView object and the second argument contains a string that contains the event and the parameter. Like, if you want to call the SelectedIndexChange event, you need to pass the 'Select' as the event and the RowIndex to select as the parameter. You need to combine the text using $. So if you give 'Select$4' as the second argument, it calls the SelectedIndexChanged event for fourth row as SelectedRow.

C#
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.DataItemIndex == -1)
        return;

    e.Row.Attributes.Add("onMouseOver", 
          "this.style.cursor='hand';");
    e.Row.Attributes.Add("onclick", 
          this.GetPostBackClientEvent(GridView1, 
          "Select$" + e.Row.RowIndex.ToString()));
}

Similarly, the following are the other parameters you can use for calling other events:

  • "Sort${ColumnName}" - Here {ColumnName} can be the DataField of the column you want to sort.
  • "Page${PageNumber}" - Here {PageNumber} is the page number you want to select.
  • "Delete${RowNumber}"- Here {RowNumber} is the row number you want to delete.
  • "Edit${RowNumber}" - Here {RowNumber} is the row number you want to edit.

So you can write any postback client side event by passing the GridView name and the above listed parameter as said. So suppose if I want to change the page number by a control's OnClick event, I simple add a postback reference to the OnClick event of that control like so: e.Row.Attributes.Add("onclick", this.GetPostBackClientEvent({{GRIDVIEWOBJECT} ,"Delete$" + e.Row.RowIndex.ToString()));. The above code simply writes a postback client event's JavaScript on the "OnClick" event of that control. When we click on the control, it calls the delete functionality of the DataGrid.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Founder IntelliPro Solutions Pvt. Ltd.
India India
A 8 or something in .NET, living in Ahmedabad, India owned IntelliPro Solutions Pvt. Ltd..

Currently working on .NET technologies, MVC and Silverlight.

My little blog is for helping community with the solution for problems or helping them to understand new technology. You can reach to my blog at http://maniish.wordpress.com.

To contact me, post comment here or email me at manish AT iprospl.com
This is a Organisation (No members)


Comments and Discussions

 
QuestionPageMethods are neater solution Pin
Manjit Dosanjh11-Aug-12 13:21
Manjit Dosanjh11-Aug-12 13:21 
GeneralMy vote of 5 Pin
Asween26-May-11 6:03
Asween26-May-11 6:03 
GeneralProblem with dynamic gridview Pin
Member 786028326-May-11 4:59
Member 786028326-May-11 4:59 
GeneralRe: Problem with dynamic gridview Pin
Manish Pansiniya26-May-11 8:20
Manish Pansiniya26-May-11 8:20 
Generalredirection Pin
xiaota21-Oct-07 2:08
xiaota21-Oct-07 2:08 
Questionhow can i fire the ItemCommand from here? Pin
luzer29-Jun-07 9:26
luzer29-Jun-07 9:26 
GeneralDisabling "onclick" event when the edit button is clicked Pin
nicosiam6-Apr-07 6:28
nicosiam6-Apr-07 6:28 
GeneralRe: Disabling "onclick" event when the edit button is clicked Pin
Manish Pansiniya6-Apr-07 7:14
Manish Pansiniya6-Apr-07 7:14 
GeneralRe: Disabling "onclick" event when the edit button is clicked Pin
nicosiam9-Apr-07 8:59
nicosiam9-Apr-07 8:59 
GeneralRe: Disabling "onclick" event when the edit button is clicked Pin
Manish Pansiniya10-Apr-07 1:16
Manish Pansiniya10-Apr-07 1:16 
GeneralRe: Disabling "onclick" event when the edit button is clicked Pin
nicosiam10-Apr-07 6:37
nicosiam10-Apr-07 6:37 
QuestionObject Null in Edit Mode of Grid View Pin
Biju Sam29-Mar-07 21:23
Biju Sam29-Mar-07 21:23 
AnswerRe: Object Null in Edit Mode of Grid View Pin
Manish Pansiniya30-Mar-07 2:44
Manish Pansiniya30-Mar-07 2:44 
Generalevent for clicking on grid view rows Pin
24891284-Feb-07 17:56
24891284-Feb-07 17:56 
GeneralRe: event for clicking on grid view rows Pin
Manish Pansiniya4-Feb-07 19:22
Manish Pansiniya4-Feb-07 19:22 
In this functionality, if you implement the functionality to select the record then selectedindexchanged of grid is fired and i think that is your solution.

Please let me know if it helps.

Thank you,

---------------------
www.pansiniya.com/blog

QuestionGreat - So simple, but Firefox ... Pin
ericVV19-Jan-07 23:02
ericVV19-Jan-07 23:02 
AnswerRe: Great - So simple, but Firefox ... Pin
Manish Pansiniya19-Jan-07 23:49
Manish Pansiniya19-Jan-07 23:49 
GeneralRe: Great - So simple, but Firefox ... Pin
saille19-Apr-07 16:37
saille19-Apr-07 16:37 
GeneralRe: Great - So simple, but Firefox ... Pin
Manish Pansiniya20-Apr-07 17:56
Manish Pansiniya20-Apr-07 17:56 
GeneralExcellent solution Pin
Pujari12-Dec-06 0:04
Pujari12-Dec-06 0:04 
GeneralRe: Excellent solution Pin
Manish Pansiniya12-Dec-06 3:54
Manish Pansiniya12-Dec-06 3:54 
Generalusing this method with dynamically created gridview Pin
wendigt1-Nov-06 3:54
wendigt1-Nov-06 3:54 
GeneralRe: using this method with dynamically created gridview Pin
wendigt1-Nov-06 4:10
wendigt1-Nov-06 4:10 
GeneralChecking on validation Problem Pin
dpmvpa14-Sep-06 6:54
dpmvpa14-Sep-06 6:54 
GeneralValidation problems Pin
dpmvpa13-Sep-06 2:14
dpmvpa13-Sep-06 2:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.