Behavior
La cosa più interessante del framework client è composta dai behavior. I behavior sono feature che possono essere collegate ad uno o più oggetti per estenderne il comportamento; tutto questo senza dover modificare in alcun modo ciò che è già esistente. I casi più semplici sono l'autocomplete per la textbox, il Drag'NDrop o il popup per i pannelli.
WEB SERVICE:
[WebMethod]
public Dimension ComplexMethod(Dimension data) {
Dimension result = new Dimension();
result.Height = data.Width;
result.Width = data.Height;
return result;
}
JAVASCRIPT:
function complexClick(sender, eventArgs) {
var obj = new Object();
obj.Width = new Sys.UI.TextBox($("txtWidth")).get_text();
obj.Height = new Sys.UI.TextBox($("txtHeight")).get_text();
DefaultService.ComplexMethod(obj, completeComplexCallback, timeoutCallback, errorCallback);
}
function completeComplexCallback(response) {
var lbl = new Sys.UI.Label($("lblComplex"));
lbl.set_text("height is: " + response.Height + "\r\nWidth is :" + response.Width);
var lblErr = new Sys.UI.Label($("lblError"));
lblErr.set_text("");
}
function timeoutCallback(response) {
var lbl = new Sys.UI.Label($("lblError"));
lbl.set_text("time out");
}
function errorCallback(result, response) {
var lbl = new Sys.UI.Label($("lblError"));
lbl.set_text("Error: " + result.get_message() + "\r\nStackTrace: " + result.get_stackTrace());
}
Un esempio classico riguarda l'AutoComplete per estendere una textbox. Un caso di applicabilità può essere l'inserimento del nome di una città o di un prodotto o qualunque altra cosa.
HTML:
<input type="text" id="txtAC" />
XML-SCRIPT:
<textBox id="txtAC">
<behaviors>
<autoComplete serviceURL="AutoCompleteService.asmx" serviceMethod="GetCompletionData" minimumPrefixLength="3" completionSetCount="10" completionInterval="100" />
</behaviors>
</textBox>
WEB SERVICE:
[WebMethod]
public string[] GetCompletionData(string prefixText, int count) {
// ...
}
Come è possibile vedere nell'esempio, le proprietà necessarie per la comunicazione col WebService sono due: serviceURL, che imposta il nome del WebService che fornisce gli item per l'AutoComplete, e serviceMethod, che imposta il nome del metodo da utilizzare.
Le altre proprietà permettono una più ampia personalizzazione: minimumPrefixLength specifica dopo quanti caratteri inseriti dall'utente si deve invocare il servizio, completionSetCount indica quanti item devono essere visualizzati nell'AutoComplete, completionInterval indica ogni quanto, in millisecondi, si deve fare il polling sul server per ricercare gli item da visualizzare (questo perché non viene effettuata la ricerca alla pressione di un tasto, ma solo ogni lasso di tempo).
È importante che la firma del metodo sia esattamente quella riportata nel codice, poiché il proxy per invocare il WebService non viene generato dinamicamente, ma è cablato.
Un altro behavior molto utile è il PopupBehavior, tramite il quale è possibile creare in modo molto semplice popup che possono essere utilizzati come tooltip avanzati o come finestre che si aprono al click di un bottone o altro ancora.
HTML:
<span id="lblPopupWord">Label</span>
<div id="divPopupWord">ATLAS Popup</div>
XML-SCRIPT:
<control id="divPopupWord">
<behaviors>
<popupBehavior id="popupBehavior" parentElement="lblPopupWord"/>
</behaviors>
</control>
<label id="lblPopupWord">
<behaviors>
<hoverBehavior unhoverDelay="0" hoverElement="divPopupWord">
<hover>
<invokeMethod target="popupBehavior" method="show"/>
</hover>
<unhover>
<invokeMethod target="popupBehavior" method="hide"/>
</unhover>
</hoverBehavior>
</behaviors>
</label>
Tramite questo codice viene mostrato e nascosto un popup nel momento in cui si passa con il mouse sopra una label. Per prima cosa si dichiara il div e lo si associa ad un popupBehavior, quindi si dichiara la label e le si associa un hoverBehavior (Behavior per gestire eventi di mouseOver e mouseOut), al quale a sua volta viene associato il popup. Quando il mouse si trova sulla label (Hover), viene invocato il metodo show sul popup; quando il mouse lascia la label, viene invocato il metodo hide.
Contenuti dell'articolo
- Pagina 1
- Pagina 4
- Pagina 5
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.








Difficoltà
Contenuti
Stampa
Download 



