Place a EditCommandColumn in your grid, then in the code-behind handle the EditCommand event.
Place this in your event...
datagrid1.EditItemIndex = e.Item.ItemIndex
If this protection is based on the data contained in that cell, you can trap the selectedIndeChanged event, then determine its' contents then discard or disaloow changes at that point.
As far as I know you can't do this during render/bind.
What part you you talking about, th message box? you cannot display a msgbox from the server.
I prefer to place those types of messages in a label or a literal control.
I've done more than enough JAVA.
Perhaps reading this will shed some light, by the way it's written by a JAVA guy and he's not a 'Microsoft patriot' ....
http://www.exia.net/html/app/sitecontent/CGI%20Dot%20Net%20vs%20J2EE.pdf
Sj, I did the exact same thing a while back, I'll post the answer later (in a few hours) unles someone else can do it first.
kahlua001, it will not postback until the validators are valid.
It's not that much of a restructure, create a couple of private members to hold the SQL statement strings and have your methods execute them.
As for the relationships just move them to the business layer.
I prefer to not have the Select statement in my DAL as to keep it generic enough so it can be used by other applications. I setup sql statements as properties or arguments for the method so they are not known by the DAL.
Also, you can inherit the DAL from the business layer with MustInherit so that it is not instansiated.