Tutti i controlli che ereditano da System.Web.UI.WebControls espongono una proprietà Attributes, alla quale è possibile aggiungere una serie di attributi(nome attributo = valore) che solo in fase di rendering vengono inseriti tra il tag di apertura e quello di chiusura HTML del controllo stesso.
Se per esempio volessimo, avere una dialog box di conferma su un Button si può procedere nel modo classico:
1: btn.Attributes.Add( "onclick", "confirm('Sei sicuro di voler cancellare?');");
Nel caso di un ToolbarButton è necessario seguire una strada diversa:
1: string script = "<script language=\"javascript\">function buttonClickHandler(){" +
2: "if(event.flatIndex == 0){" +
3: "if(window.confirm(\"Sei sicuro di voler cancellare?\")){" +
4: GetPostBackClientEvent( Toolbar1, "0") + "}}}</script>";
5: Page.RegisterClientScriptBlock( "confirmDelete", script);
6: Toolbar1.Attributes.Add("onbuttonclick", "javascript:buttonClickHandler()");
Attraverso il metodo RegisterClientScriptBlock si inietta nella pagina Asp.Net il blocco di script.
La parte più interessante della funzione javascript buttonClickHandler è quando si verifica la property flatIndex che ritorna l'indice del button che ha scatenato l'evento.
Nel caso specifico verifico che sia 0 cioè il primo button e genero lo script __doPostBack.
Per far ciò uso il metodo GetPostBackClientEvent di cui ho già parlato in un precedente post.
0 commenti:
Post a Comment