Your explaination is long and takes a lot of concentration to follow...
but...
if the final result of the "YES/NO" popup is always the same wouldnt it be a lot easier to always call the same popup and pass in variables to a Label to display <whatever> the user is saying "Yes/NO" To?
example -> OnButtonPressFromGridview()
{
Label1.Text = "Ask Question.... Are you Happy?"
Button1.Txt="Yes"
}
LATER IN THE CODE. enable all the PopUpBUttonCode....
PopUPButtonCode_Yes()
{
Do.Something = DOITNOW;
Do.Something.Else = DO.THAT.NOT;
}
and
PopUPButtonCode_NO()
{
this.closePanel;
}
i get the distinct impression that your popup is more for visual effect than anything else... as such, it should be handled as its own "page" (so to say).
I am not sure exactly why you are using the YES/NO... and if it's actually a "YES/NO" response.... if "YES" = <RUN SOME COMMAND/METHOD" and "NO" = Cancel then the same panel/popup could be used to control many different "YES/NO" responses by assigning different variables/methods to the panel.
i hope this works.
I've asked a lot of "theory" questions on this forum and few people answer in any method useful (if at all) i hope this helps. (mark answered if so).