Posizionamento User Control nella pagina .aspx

mercoledì 07 maggio 2008 - 20.27

motogpdesmo16 Profilo | Senior Member

Salve a tutti.
Ho provveduto a creare uno user control che è composto da due label e due immagini in quanto ho necessità di ripetere questo controllo in molte pagine del mio applicativo asp.net
Il problema è questo: nel .ascx riesco a scegliere tranquillamente il posizionamento degli oggetti; quando trascino il .ascx nelle pagine .aspx, questo UC mi rimane posizionato sempre in alto a sinistra e non c'è verso di spostarlo. Tutti gli altri oggetti possono essere spostati nell'ambito della pagina (ho impostato Layout-->posizione-->non impostato...magari se è sbagliato questo metodo suggeritemi voi qualcosa) ma lo user control proprio no.

Sapete per caso come aiutarmi?
grazie anticipatamente per le eventuali risposte.

freeteo Profilo | Guru

ciao,
a meno di non avere un css che te lo blocchi in alto a sx, non c'è ragione per cui non venga posizionato dove vuoi tu.
Prova a postare 1po di codice della pagina aspx eventualmente per capire meglio...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

motogpdesmo16 Profilo | Senior Member

Allora... ho provato a posizionare gli oggetti al centro della mia pagina .ascx e anche se lo UC viene trascinato nella pagina .aspx si posiziona al centro della pagina!!
Veramente incredibile!

Comunque questo è il codice "origine" che mi viene generato non appena trascino lo UC nella pagina

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

il File .vb è ovviamente vuoto.

Grazie comunque per l'attenzione

freeteo Profilo | Guru

veramente volevo il sorgente del controllo, perchè forse è impostato dentro di lui il fatto della posizione assoluta...guarda nel ascx, se sono impostati degli stili...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

motogpdesmo16 Profilo | Senior Member

Perdonami: ho inteso male il senso della domanda

questo è il file .ascx

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Gli absolute effettivamente sono presenti ma, se li togliessi, i due oggetti (immagine e linkbutton) si posizionano uno di fianco all'altro e invece io li vorrei posizionare uno sopra e uno sotto (immagine sopra, linkbutton sotto).

freeteo Profilo | Guru

ciao,
si il problema è proprio "left: 108px; top: 115px; position: absolute" soprattutto il "position:absolute" che appunto li mette per forza in alto a sinistra, indipendentemente da quello che è i lflusso della pagina.

Devi lavorare meglio con html, e TOGLIERE lo Style che hai adesso nei controlli:
<div><asp:LinkButton...../></div> <div><asp:Image..../></div>

oppure semplicemente metti un acapo tra i 2:
<asp:LinkButton...../><br/> <asp:Image..../>

se vuoi puoi farlo anche con lo stile:
<asp:LinkButton..... Style="display:block;" /> <asp:Image..../>


ma il tuo caso è semplice a mio avviso ti basta l'acapo addirittura...ma sicuramente non impostare le "position"


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

motogpdesmo16 Profilo | Senior Member

Sto sicuramente sbagliando qualcosa io:
ho seguito il tuo consiglio scrivendo quindi

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ottengo, in progettazione, l'immagine che vedi allegata. In realtà vorrei avere l'immagine del salvataggio posizionata centralmente al link button...ma non è questo il problema adesso.

162x110 3Kb


Se trascino il .ascx nel .aspx vedo invece

162x110 2Kb
ed è assolutamente bloccata sulla pagina.

Potrebbero esserci attributi di posizionamento sballati nell'ambito della pagina (e non degli oggetti) .aspx? Tieni conto che comunque qualsiasi altro oggetto aggiunga alla pagina riesco a muoverlo tranquillamente.

freeteo Profilo | Guru

>Se trascino il .ascx nel .aspx vedo invece ed è assolutamente
>bloccata sulla pagina.
certo perchè segue il flusso di disegno della pagina.
Il controllo che hai importato puoi cmq sempre avvolgerlo in un div e dare le posizioni assolute a quello:
<div style="left:100px;top:50px;position:absolute;" > <uc1:WebUserControl ID="WebUserControl1" runat="server" /> </div>
e quindi andare a posizionarlo dove vuoi esattamente.
Cmq è una modalità che non uso mai, e già nel 2005 e ancora di più nel 2008 è stata disabilitata di default, perchè poi hai problemi di render per diversi dispositivi etc...
Ovviamente però è sempre possibile andare a fare quelle impostazioni tramite css...ovvero proprietà "style" del controllo, o meglio ancora, del div che lo controlla come ti ho appena suggerito.

Per la posizione centrale dell'immagine ti basta dare l'alllineamento centrato al div che contiene l'immagine:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
però a me piace fare queste cose nel foglio di stile css associato alla pagina piuttosto che farlo sulla parte html...è più pulito!

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5