[ASP.NET] Events HtmlButton in datagrid afvangen

Pagina: 1
Acties:
  • 52 views sinds 30-01-2008

  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
Normaalgesproken bevat een datagrid <ASP:button>'s voor bijv. edit- en updatecommands. Nu wil ik deze buttons graag vervangen door HtmlButton's. Ik krijg het echter niet voor elkaar de juiste events hiermee te triggeren. Waar de <ASP:button> gebruik maakt van het commandname-attribuut heeft een HtmlButton niet de beschikking over dit attribuut.

Hoe kan ik met HtmlButtons ipv ASPbuttons toch de juiste events triggeren?

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Je kan de ServerClick event van een HtmlButton toch afvangen in de ItemCommand van het DataGrid?

| Toen / Nu


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
SuperRembo schreef op maandag 10 januari 2005 @ 15:35:
Je kan de ServerClick event van een HtmlButton toch afvangen in de ItemCommand van het DataGrid?
Kan je dat met een stukje code demonstreren?

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Kijk eens op MSDN bij Datagrid.ItemCommand.
Waarom wil je eigenlijk geen asp button?

| Toen / Nu


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:20

gorgi_19

Kruimeltjes zijn weer op :9

En anders moet je een eigen TemplateColumn maken :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
gorgi_19 schreef op maandag 10 januari 2005 @ 16:43:
En anders moet je een eigen TemplateColumn maken :)
Ik heb een TemplateColumn gemaakt met een HtmlButton ipv een ASP:button. Ik weet alleen niet hoe ik de datagrid-events trigger met een HtmlButton...

  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
Moet ik iets met het onclick-event van de HtmlButton? Hoe vang ik dit af in de code?

Iemand een ander idee?

  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Je inherit je eigen button van HtmlButton, daarin vang je het click event af en stuurt dit event door naar de parent DataGrid via RaiseBubbleEvent(). Als je in het click event de EventArgs object omzet naar een CommandEventArgs object, zou je deze af moeten kunnen vangen in de ItemCommand van de DataGrid (en anders in de OnBubbleEvent).

De vraag blijft, waarom wil je een HtmlButton ipv een Button?

[ Voor 5% gewijzigd door TlighT op 11-01-2005 10:29 ]


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
TlighT schreef op dinsdag 11 januari 2005 @ 10:22:
De vraag blijft, waarom wil je een HtmlButton ipv een Button?
Ik werk met accesskey's en bij een Button heb ik het vooralsnog niet voor elkaar gekregen om een letter te onderstrepen...Dit in tegenstelling tot bij een HtmlButton, waar dit gemakkelijk gaat.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:20

gorgi_19

Kruimeltjes zijn weer op :9

EmilneM schreef op dinsdag 11 januari 2005 @ 10:42:
[...]


Ik werk met accesskey's en bij een Button heb ik het vooralsnog niet voor elkaar gekregen om een letter te onderstrepen...Dit in tegenstelling tot bij een HtmlButton, waar dit gemakkelijk gaat.
Een button heeft afaik een Attributes collectie, waarmee je die zut kan toevoegen? :? Sterker nog, een button heeft ook een AccessKey property?

[ Voor 8% gewijzigd door gorgi_19 op 11-01-2005 10:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
gorgi_19 schreef op dinsdag 11 januari 2005 @ 10:42:
[...]

Een button heeft afaik een Attributes collectie, waarmee je die zut kan toevoegen? :? Sterker nog, een button heeft ook een AccessKey property?
Een button heeft inderdaad een accesskey property, maar biedt niet de mogelijkheid om een letter te onderstrepen...

  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Als proof of concept van mijn vorige reply, dit werkt volgens mij (niet uitvoerig getest) :
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class HtmlCommandButton : HtmlButton
{
    public string CommandName
    {
        get
        {
            object commandName = ViewState["CommandName"];
            return (commandName != null ? (string) commandName : string.Empty);
        }
        set { ViewState["CommandName"] = value; }
    }

    public string CommandArgument
    {
        get
        {
            object commandArgument = ViewState["CommandArgument"];
            return (commandArgument != null ? (string) commandArgument : string.Empty);
        }
        set { ViewState["CommandArgument"] = value; }
    }

    protected override void OnInit(EventArgs e)
    {   
        this.ServerClick += new EventHandler(HtmlCommandButton_ServerClick);

        base.OnInit (e);
    }

    private void HtmlCommandButton_ServerClick(object sender, EventArgs e)
    {
        CommandEventArgs commandEventArgs = 
            new CommandEventArgs(CommandName, CommandArgument);

        this.RaiseBubbleEvent(this, commandEventArgs);
    }
}

Dan heb je dus een HtmlButton met een CommandName en CommandArgument property.

  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
TlighT schreef op dinsdag 11 januari 2005 @ 12:16:
Als proof of concept van mijn vorige reply, dit werkt volgens mij (niet uitvoerig getest) :
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class HtmlCommandButton : HtmlButton
{
    public string CommandName
    {
        get
        {
            object commandName = ViewState["CommandName"];
            return (commandName != null ? (string) commandName : string.Empty);
        }
        set { ViewState["CommandName"] = value; }
    }

    public string CommandArgument
    {
        get
        {
            object commandArgument = ViewState["CommandArgument"];
            return (commandArgument != null ? (string) commandArgument : string.Empty);
        }
        set { ViewState["CommandArgument"] = value; }
    }

    protected override void OnInit(EventArgs e)
    {   
        this.ServerClick += new EventHandler(HtmlCommandButton_ServerClick);

        base.OnInit (e);
    }

    private void HtmlCommandButton_ServerClick(object sender, EventArgs e)
    {
        CommandEventArgs commandEventArgs = 
            new CommandEventArgs(CommandName, CommandArgument);

        this.RaiseBubbleEvent(this, commandEventArgs);
    }
}

Dan heb je dus een HtmlButton met een CommandName en CommandArgument property.
Kan iemand bovenstaande code vertalen naar VB.NET-code?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:20

gorgi_19

Kruimeltjes zijn weer op :9

EmilneM schreef op woensdag 12 januari 2005 @ 09:00:
[...]


Kan iemand bovenstaande code vertalen naar VB.NET-code?
:/ Ja doei.. We zijn hier geen persoonlijke vertaalservice voor je.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.