In mijn gridview toon ik orders. Als een gebruiker een order opent, wordt deze order 'gelocked'. Dit locken is puur een visuele weergave, zodat andere gebruikers zien dat iemand al in de order bezig is.
Als de gebruiker dan alsnog op een gelockte rij klikt, krijgt hij/zij een Confirmbox te zien met de tekst of hij/zij alsnog de order wilt openen.
Deze confirm wordt getoond op het moment als de gebruiker op een van de kolommen klikt m.u.v. de laatste kolom. De laatste kolom is namelijk een checkbox die we gebruiken om bijvoorbeeld meerdere rijen te kunnen selecteren.
Bovenstaand heb ik op de volgende manier bereikt:
Dit levert echter hele vieze HTML op. Op elke kolom komt namelijk een onclick-attribuut en hierdoor wordt de pagina aardig groot bij grotere aantallen rijen.
Mijn vraag is dus: kunnen we dit niet op een andere manier doen? Hebben jullie hier ideeën over?
Als de gebruiker dan alsnog op een gelockte rij klikt, krijgt hij/zij een Confirmbox te zien met de tekst of hij/zij alsnog de order wilt openen.
Deze confirm wordt getoond op het moment als de gebruiker op een van de kolommen klikt m.u.v. de laatste kolom. De laatste kolom is namelijk een checkbox die we gebruiken om bijvoorbeeld meerdere rijen te kunnen selecteren.
Bovenstaand heb ik op de volgende manier bereikt:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| //Order locked? if (e.Row.RowType == DataControlRowType.DataRow) { OrderDisplay oh = (OrderDisplay)e.Row.DataItem; if (!oh.isLocked) { for (int i = 0; i < gvOrders.Columns.Count - 1; i++) { e.Row.Cells[ i ].Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(this.gvOrders, "Select$" + e.Row.RowIndex)); } } else { for (int i = 0; i < gvOrders.Columns.Count - 1; i++) { e.Row.Cells[ i ].Attributes.Add("onclick", "javascript:if (ConfirmUnlock()) {" + Page.ClientScript.GetPostBackEventReference(this.gvOrders, "Select$" + e.Row.RowIndex) + "}"); } } } |
Dit levert echter hele vieze HTML op. Op elke kolom komt namelijk een onclick-attribuut en hierdoor wordt de pagina aardig groot bij grotere aantallen rijen.
Mijn vraag is dus: kunnen we dit niet op een andere manier doen? Hebben jullie hier ideeën over?
[ Voor 0% gewijzigd door BtM909 op 15-04-2012 02:10 ]