DataGrid - Riga Intestazione e prima colonna Bloccate

giovedì 09 giugno 2005 - 09.57

erik77 Profilo | Senior Member

Ciao ragazzi,
ho un DataGrid (con UseAccessibleHeader="True") nel quale ho bloccato la riga di intestazione e la prima colonna inserendolo in un DIV e usando questo Stile:

/* Div container to wrap the datagrid */
div#div-datagrid {
width: 420px;
height: 200px;
overflow: auto;
scrollbar-base-color:#ffeaff;
}

/* Locks the left column */
td.locked, th.locked {
font-size: 14px;
font-weight: bold;
text-align: center;
background-color: navy;
color: white;
border-right: 1px solid silver;
position:relative;
cursor: default;
left: ***expression (documen.getElementById("div-datagrid").scrollLeft-2); /*IE5+ only*/
}

/* Locks table header */
th {
font-size: 14px;
font-weight: bold;
text-align: center;
background-color: navy;
color: white;
border-right: 1px solid silver;
position:relative;
cursor: default;
top: ***expression (documen.getElementById("div-datagrid").scrollTop-2); /*IE5+ only*/
z-index: 10;
}

/* Keeps the header as the top most item. Important for top left item*/
th.locked {z-index: 99;}

per bloccare la colonna nell'evento DataGrid1.ItemDataBound ho assegnato il CssClass:
e.Item.Cells(0).CssClass = "locked"

Bene il tutto funzione e per un dataGrid con molte colonne e molte righe dovrebbe renderlo più leggibile...
...il problema però è che quando ci sono abbastanza record (>50) lo scrollbar risultano lentissime!!!

secondo voi c'è un modo per ottimizare la cosa? o l'unica strada è la paginazione?

ciaooooo

GvnnRules Profilo | Senior Member

Purtroppo lo scroll lento è dovuto al tuo browser, purtroppo non saprei come aiutarti per ottimizzare il css, ma se vuoi aumentare le prestazioni senza modificare niente l'unica strada è il paging.

ciaoz

Gvnn

erik77 Profilo | Senior Member

In effetti ho provato su un PC molto più potente del mio e lo scroll lento rimane praticamente invariato.

Ma di preciso cosa intendi "è dovuto al tuo browser"???

ciaoooo

GvnnRules Profilo | Senior Member

Che è colpa del client ... se lo scroll è lento vuol dire che il tuo pc non riesce a fare il rendering della in tempo ragionevole, per esempio a me capita spesso con le pagine con il flash perchè il portatile non ha una scheda video decente :(

Ciaoz

Gvnn

erik77 Profilo | Senior Member

beh ho provato anche su un pc molto potente ma riscontro lo stesso problema.... piccolo sfogo... ma è possibile che una 50ina di record su una pagina Web creino questo scompiglio!?!?!?!?

GvnnRules Profilo | Senior Member

Non sono le 50 righe ... sono gli stili che hai applicato che rendono tutto + lento ... dovresti trovare il modo di alleggerli ... fai una prova, togli gli stili e secondo me va veloce.

Ciaoz

Gvnn

erik77 Profilo | Senior Member

niente togliendo anche questi stili:
font-size: 14px;
font-weight: bold;
text-align: center;
background-color: navy;
color: white;
border-right: 1px solid silver;
cursor: default;

rimane lento come prima :(

d@dora Profilo | Senior Member

ciao, ho seguito il tuo esempio, ma non visualizza le scrollbars, forse ho sbagliato ad inserire il datagrid dentro al div, oppure il div non l'ho dichiarato in modo corretto: mi puoi dare una mano allegandomi un piccolo esempio ???

ciao e grazie
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