[VB.NET] Geen instance van linkButton... maar werkt wel :?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Chip.
  • Registratie: Mei 2006
  • Niet online
Ik heb een pagina systeem m.b.v PagedDataSource. Nu geef ik mijn pagina's keurig weer. In de .aspx file heb ik een repeater die ervoor zorgt dat de pagina nummers geprint word. Nu wou ik graag dat de pagina die gelijk is aan de huidige pagina bold is en de link disabled is, omdat te checken gebruik ik de onItemDataBound routine.

Nu gaat het bij het checken of de pagina gelijk is aan de huidige pagina fout. Hij zegt dat ik geen instance heb gemaakt van de linkButton.

In me .aspx tussen <asp:repeater OnItemDataBound="repeaterPager_ItemDataBound"> staat
Visual Basic:
1
2
3
<ItemTemplate> 
    <asp:LinkButton ID="btnPage" CommandName="btnPage" CommandArgument="<%#Container.DataItem %>" Text="<%# Container.DataItem %>" Runat="server"></asp:LinkButton> 
</ItemTemplate>


En me functie is als volgt...

Visual Basic:
1
2
3
4
5
6
7
8
    Public Sub repeaterPager_ItemDataBound(ByVal Sender As Object, ByVal e As RepeaterItemEventArgs)
        Dim btnPage As LinkButton = CType(e.Item.FindControl("btnPage"), LinkButton)

        If btnPage.CommandArgument.ToString().Equals(Convert.ToString(currentPage + 1)) Then
            btnPage.Enabled = False
            btnPage.Font.Bold = True
        End If
    End Sub


Nu snap ik wel dat ik in feite, geloof ik, geen instance maak van de LinkButton maar dat ik de control zoek en die cast naar linkbutton. Maar hoe zou ik het anders moeten doen?

Ik had toen gevonden dat je nog zou kunnen proberen om die in je partial class te declareren
Visual Basic:
1
Protected WithEvents btnPage As New System.Web.UI.WebControls.LinkButton

Echter dat werkte ook niet.

In feite werkt de code gewoon en is de huidige pagina gewoon bold en niet enabled, echter toch gooit hij die exception |:(. Ik kan het wel laten wat het is en de exception gewoon onderdrukken... maja dat is ook niet echt netjes.

[ Voor 3% gewijzigd door Chip. op 18-12-2009 15:12 ]


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Wouser schreef op vrijdag 18 december 2009 @ 15:04:
Ik heb een pagina systeem m.b.v PagedDataSource. Nu geef ik mijn pagina's keurig weer. In de .aspx file heb ik een repeater die ervoor zorgt dat de pagina nummers geprint word. Nu wou ik graag dat de pagina die gelijk is aan de huidige pagina bold is en de link disabled is, omdat te checken gebruik ik de onItemDataBound routine.

Nu gaat het bij het checken of de pagina gelijk is aan de huidige pagina fout. Hij zegt dat ik geen instance heb gemaakt van de linkButton.

In me .aspx tussen <asp:repeater OnItemDataBound="repeaterPager_ItemDataBound"> staat
Visual Basic:
1
2
3
<ItemTemplate> 
    <asp:LinkButton ID="btnPage" CommandName="btnPage" CommandArgument="<%#Container.DataItem %>" Text="<%# Container.DataItem %>" Runat="server"></asp:LinkButton> 
</ItemTemplate>


En me functie is als volgt...

Visual Basic:
1
2
3
4
5
6
7
8
    Public Sub repeaterPager_ItemDataBound(ByVal Sender As Object, ByVal e As RepeaterItemEventArgs)
        Dim btnPage As LinkButton = CType(e.Item.FindControl("btnPage"), LinkButton)

        If btnPage.CommandArgument.ToString().Equals(Convert.ToString(currentPage + 1)) Then
            btnPage.Enabled = False
            btnPage.Font.Bold = True
        End If
    End Sub


Nu snap ik wel dat ik in feite, geloof ik, geen instance maak van de LinkButton maar dat ik de control zoek en die cast naar linkbutton. Maar hoe zou ik het anders moeten doen?

Ik had toen gevonden dat je nog zou kunnen proberen om die in je partial class te declareren
Visual Basic:
1
Protected WithEvents btnPage As New System.Web.UI.WebControls.LinkButton

Echter dat werkte ook niet.

In feite werkt de code gewoon en is de huidige pagina gewoon bold en niet enabled, echter toch gooit hij die exception |:(. Ik kan het wel laten wat het is en de exception gewoon onderdrukken... maja dat is ook niet echt netjes.
Misschien kun je er met de debugger even door heen lopen, misschien zit het net ergens anders dan je denkt. Verder heeft het geen nut om in je partial class 2x iets te declareren (gaat alleen maar fout) omdat de compiler dit gewoon ziet als 1 bestand.

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • MachoM
  • Registratie: April 2003
  • Laatst online: 28-08 13:07
Wouser schreef op vrijdag 18 december 2009 @ 15:04:
Ik had toen gevonden dat je nog zou kunnen proberen om die in je partial class te declareren
Visual Basic:
1
Protected WithEvents btnPage As New System.Web.UI.WebControls.LinkButton

Echter dat werkte ook niet.
Ik weet niet of het je probleem zou oplossen, maar dit stukkie is in ieder geval niet correct.

De New zorgt ervoor dat hij een nieuwe instantie van LinkButton wil maken, dat wil je niet, deze is al gedeclareerd in de aspx pagina.

probeer dus eens:

Visual Basic:
1
Protected WithEvents btnPage As System.Web.UI.WebControls.LinkButton

Acties:
  • 0 Henk 'm!

  • Chip.
  • Registratie: Mei 2006
  • Niet online
MachoM schreef op vrijdag 18 december 2009 @ 15:48:
[...]


Ik weet niet of het je probleem zou oplossen, maar dit stukkie is in ieder geval niet correct.

De New zorgt ervoor dat hij een nieuwe instantie van LinkButton wil maken, dat wil je niet, deze is al gedeclareerd in de aspx pagina.

probeer dus eens:

Visual Basic:
1
Protected WithEvents btnPage As System.Web.UI.WebControls.LinkButton
MachoM schreef op vrijdag 18 december 2009 @ 15:48:
[...]


Ik weet niet of het je probleem zou oplossen, maar dit stukkie is in ieder geval niet correct.

De New zorgt ervoor dat hij een nieuwe instantie van LinkButton wil maken, dat wil je niet, deze is al gedeclareerd in de aspx pagina.

probeer dus eens:

Visual Basic:
1
Protected WithEvents btnPage As System.Web.UI.WebControls.LinkButton
Ja sorry dat had ik ook al geprobeerd. Had gevonden met New en zonder. Zal morgen even de debugger proberen. Alvast bedankt voor de hulp

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:32

gorgi_19

Kruimeltjes zijn weer op :9

Of je moet een OnClick aangeven in de .aspx pagina, of je moet in de codebehind de handler registreren tijdens het ItemCreated event van de repeater.

Digitaal onderwijsmateriaal, leermateriaal voor hbo