Click here to Skip to main content
15,113,970 members
Articles / Web Development / ASP.NET
Posted 22 Feb 2007


148 bookmarked

GridView with a single ModalPopupExtender/Panel for row editing

Rate me:
Please Sign up or sign in to vote.
4.93/5 (45 votes)
22 Feb 2007CPOL3 min read
GridView with a single ModalPopupExtender/Panel for row editing.
A gridview

Screenshot - persongrid.jpg

The modal

Screenshot - personGridEditWindow.jpg


I am not a huge fan of inline row editing that is provided with most ASP.NET grids. So, recently I went about trying to implement a pop up edit window for editing the values contained within a grid's row. To make it even more interesting, I wanted it use Asynchronous JavaScript callbacks to do this. Since I was already using and the AJAX Toolkit, I went about trying to figure out which control to use, and if any, what they provided would suit me.


  1. I wanted to be able to pop up an edit window for editing that disabled the background window (or gave the appearance of being disabled).
  2. I wanted to control the save and edit server-side as I was using custom business objects that were bound to the grids through the ObjectDataSource control.
  3. It needed to be asynchronous. I wanted functionality, but I wanted speed, and ease for the customer as well.


The ModalPopup: I first looked at the modal popup extender as it seemed to be exactly what I needed. However, there were a couple issues with how I wanted to use it.

  1. The TargetControlID property is required. So, if I wanted to use it the way it was designed, then I would have to embed a ModalPopup into a ItemTemplate column in the grid with an associated button. This did not appeal to me at all. The same issue occurs for the PopupControlID.
  2. Getting the values into the fields contained in the pop-up panel. Again, I could have embedded the panel into the ItemTemplate column and bound the fields using standard binding. This really did not appeal to me. HTML bloat anyone?

The PopupControl: I quickly abandoned this one, as it had even more issues than the modal popup for what I was trying to do.

Raj Kaimal - Master Details using AJAX and the UpdatePanelPopupExtender: I have to say this one looked awesome, and ran quite well. The only issue I ran into is that it flaked out sometimes when doing custom data binding. The other issue was support. I would have hated to wait on Raj to have to update his code for the next version of AJAX. Considering their track record so far with breaking changes to the design of from the beta's to 1.0, I was not overly enthusiastic about this prospect. Nicely done control though. Would love to see something similar embedded into so the workaround I found would be obsolete.

Frustrated, I was about to give up when I read Dynamically-Created-ModalPopupExtender. Which led me back to the use of the ModalPopupExtender. All of the example code is included in the zip, along with an example showing multiple grids embedded inside an ASP.NET AJAX tab. You will need VS.NET 2005 and version 1.0 of the ASP.NET AJAX framework. The images are courtesy of Michael Hoskins.


  • 02/26/2007 - Added an option to use XML as the data source. Will default to XML. Also added an email grid.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author
Web Developer
United States United States
No Biography provided

Comments and Discussions

QuestionVB equivlant of this ModalPopupExtender/Panel ?? Anyone? Pin
Chenga888815-Jul-13 7:34
MemberChenga888815-Jul-13 7:34 
GeneralMy vote of 5 Pin
MohamedKamalPharm27-Jun-13 13:12
MemberMohamedKamalPharm27-Jun-13 13:12 
GeneralMy vote of 5 Pin
Manoj Kumar Choubey7-Feb-12 22:45
professionalManoj Kumar Choubey7-Feb-12 22:45 
GeneralWork like a charm -- Modifications Pin
nitin_rajwar16-Mar-10 2:53
Membernitin_rajwar16-Mar-10 2:53 
GeneralRe: Work like a charm -- Modifications Pin
nitin_rajwar16-Mar-10 23:14
Membernitin_rajwar16-Mar-10 23:14 
GeneralIs it Possible to access Multiple Modal popupextender to single panel Pin
ravinandhini28-Jan-10 21:21
Memberravinandhini28-Jan-10 21:21 
Generalwant to delete the background shaded region Pin
Ashok Nalam25-Feb-09 19:21
MemberAshok Nalam25-Feb-09 19:21 
GeneralWorks Beautifully!!! Pin
nrps20-Feb-09 20:03
Membernrps20-Feb-09 20:03 
GeneralPage Refreshes on GridView Button Click Pin
_Groker21-Jan-09 10:39
Member_Groker21-Jan-09 10:39 
QuestionWhat is SCRUB? Pin
denniswong28828-Aug-08 16:14
Memberdenniswong28828-Aug-08 16:14 
AnswerRe: What is SCRUB? Pin
klyoung28-Jun-13 7:45
Memberklyoung28-Jun-13 7:45 
GeneralVery Helpful Pin
ryanoc33319-Aug-08 11:44
Memberryanoc33319-Aug-08 11:44 
Newsquestion plz help on grid view problem Pin
vardhanmm@gmail.com2-May-08 0:31
Membervardhanmm@gmail.com2-May-08 0:31 
Generalexcellent article Pin
msoul219-Nov-07 17:50
Membermsoul219-Nov-07 17:50 
QuestionThe answer must be so close... Pin
AndoTheOptimal22-Oct-07 6:24
MemberAndoTheOptimal22-Oct-07 6:24 
GeneralProblem using the technique with formview Pin
mhariri13-Oct-07 4:14
Membermhariri13-Oct-07 4:14 
AnswerRe: Problem using the technique with formview Pin
Henrique Duarte9-Nov-07 2:02
MemberHenrique Duarte9-Nov-07 2:02 
GeneralMuch Thanks Pin
airjasper20-Sep-07 15:06
Memberairjasper20-Sep-07 15:06 
QuestionAppreciation and Question Pin
details@insidespirit.com17-Aug-07 8:55
Memberdetails@insidespirit.com17-Aug-07 8:55 
Questionsticky panel Pin
dsmportal14-Aug-07 5:13
Memberdsmportal14-Aug-07 5:13 
QuestionQuestion Pin
stormcandi11-Jun-07 10:09
Memberstormcandi11-Jun-07 10:09 
AnswerRe: Question Pin
Torben716-Jul-07 3:13
MemberTorben716-Jul-07 3:13 
GeneralRe: Question Pin
stormcandi6-Jul-07 6:35
Memberstormcandi6-Jul-07 6:35 
Questiona problem! Pin
vicqqq5-Jun-07 17:46
Membervicqqq5-Jun-07 17:46 
QuestionPaging do not work Pin
kcchenkd29-Apr-07 18:33
Memberkcchenkd29-Apr-07 18:33 

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.