Avatar billede dehaas Nybegynder
03. februar 2007 - 16:51 Der er 12 kommentarer og
1 løsning

AJAX Toolkit ReorderList - Custom Control

Hej,

Jeg er ved at arbejde på en custom control, hvor jeg vil prøve at udnytte funktionalitet en fra 'ReorderList' i AJAX Toolkittet.

Så vidt jeg kan tænke, bruge jeg vel kunne rendere en helt alm. ReorderList således (i min RenderContents metode):

Dim List as new AjaxControlToolkit.ReorderList
List.DataSource = [EN ELLER ANDEN ARRAYLIST]
List.DataBind()

List.RenderControl(writer)

Men det virker ikke, når jeg kommer til RenderControl smider den en fejl i hovedet på mig. Håber i kan hjælpe mig med problemtet.
Avatar billede snepnet Nybegynder
03. februar 2007 - 18:11 #1
Hvad er det for en fejl du får?
Mvh
Avatar billede dehaas Nybegynder
03. februar 2007 - 18:45 #2
Jeg får en 'Object reference not set to an instance of an object'
Avatar billede snepnet Nybegynder
03. februar 2007 - 20:58 #3
Prøv at vise mig hele metoden.
Mvh
Avatar billede dehaas Nybegynder
03. februar 2007 - 22:32 #4
Den kommer så her:

Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls


<DefaultProperty("Text"), ToolboxData("<{0}:SiteOverviewControl runat=server></{0}:SiteOverviewControl>")> _
Public Class SiteOverviewControl
    Inherits WebControl

    Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter)

        Dim RootList As New AjaxControlToolkit.ReorderList

        ' Test Data
        Dim Data As New ArrayList
        Data.Add("wikwak")
        Data.Add("abe")

        RootList.DataSource = Data
        RootList.DataBind()

        RootList.RenderControl(writer)

    End Sub

End Class
Avatar billede dr_chaos Nybegynder
03. februar 2007 - 23:29 #5
Hvilken linie får du exception i ?
Avatar billede dehaas Nybegynder
04. februar 2007 - 00:02 #6
Fejlen kommer ved 'RootList.RenderControl(writer)'
Avatar billede dr_chaos Nybegynder
06. februar 2007 - 11:00 #7
prøv at tjekke at RootList ikke er nothing.
Avatar billede dehaas Nybegynder
06. februar 2007 - 20:13 #8
Vil lige prøve det imorgen, men kan umiddelbart ikke se hvordan den skulle kunne være det.
Avatar billede dr_chaos Nybegynder
07. februar 2007 - 14:27 #9
Det kan også være at der er properties på rootlist som skal sættes men som mangler.
f.eks. en ID.
Avatar billede dehaas Nybegynder
08. februar 2007 - 16:25 #10
Hej, jeg har nu fået løst problemet.

For det første, kan man ikke lave en .RenderControl, idet der udover at skulle skrives html, også skal laves registreringer i ScriptManageren. Det er derfor nødvendigt at tilføje kontrollen til 'Parent' istedet:

Me.Controls.Add(RootList)

Derudover skal dette køre ved PreRender eller før, ellers er det for sent at lave disse registreringer, jeg har derfor lavet min kode i Load-eventet.

Til sidst skal man så have renderet sin kontrol (html), i render metoden:

Me.Controls.Item(0).RenderControl(writer)

Mange tak for jeres hjælp, smid endelig et svar for jeres indsats.
Avatar billede snepnet Nybegynder
08. februar 2007 - 19:53 #11
Jeg skal ikke have point for denne :o)
(Beklager fraværet... er på konference i langbortistan, så det kan knibe lidt med at komme herude)
Mvh
Avatar billede dr_chaos Nybegynder
08. februar 2007 - 19:57 #12
Jeg vil erklære mig enig med snepnet :)
Avatar billede dehaas Nybegynder
08. februar 2007 - 20:16 #13
Okay, jamen så snupper jeg dem da selv :)

Alligevel tak for jeres indsats, jeg skal sikkert få brug for den igen engang.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester