[c#] gridviewrow OnClick attribute op enkele kolommen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 17-09 17:46
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:
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 ]


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ja, door je te verdiepen in de JS-library die zeer waarschijnlijk standaard wordt meegeleverd en uit te vogelen hoe je alle elementen met een bepaalde class na het DOMReady event een onclick-handler krijgen geassigned.

Het is netter, maar ik vraag me af waarom je pagina aardig groot worden bij grotere aantallen rijen... Dan is het dus verstandig om de gegenereerde HTML (niet alles, maar de relevante code) ook hier te posten ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.