Posts
163
Comments
179
Trackbacks
5
AutoCompleteExtender: modificare la larghezza della lista

Giornata di problemi con l'AutoCompleteExtender. Generalmente utilizzo l'AutoCompleteExtender associato a textbox abbastanza lunghi. In questi casi non ho mai ricontrato problemi con la larghezza della lista degli elementi che di default viene settata identica alla lunghezza del textbox.
Cosa succede però se abbiamo un textbox con dimensioni ridotte e una lista con elementi molto lunghi? In questo caso gli elementi vanno a capo su una o più linee. Non c'e' problema mi dirite voi, da CSS si può modificare la dimensione associando una classe alla proprietà CompletionListCssClass dell'AutoCompleteExtender.

Eh invece no! Se si modifica semplicemente l'attributo Width non succede un beneamato piffero. Andando a sbirciare nel JS dell'AutoCompleteExtender troviamo infatti la seguente riga di codice:

this._completionListElement.style.width = Math.max(1, elementBounds.width - 2) + 'px';

La soluzione è abbastanza semplice, nel CSS basta aggiungere la dichiarazione !Important dopo l'attributo Width.
Se si specifica un valore fisso per la larghezza tutto funziona correttamente, mentre se si specifica 'auto' a volte si verifica un piccolo problema di visualizzazione: la lista viene infatti visualizzata con dimensione nulla.

A mio giudizio la soluzione ideale sarebbe avere una proprietà aggiuntiva nell'AutoCompleteExtender che permetta di scegliere se avere la lista con le stesse dimensioni del textbox o se averla con dimensioni "custom".


Technorati Tags: ,


posted on mercoledì 31 ottobre 2007 17:25 Print
Comments have been closed on this topic.
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS