Avatar billede soerens Nybegynder
21. september 2004 - 11:54 Der er 5 kommentarer og
1 løsning

Dyn. tilføje UserControl uden brug af PlaceHolder

Er der en måde jeg dynamisk kan tilføje en UserControl til en side uden at bruge f.eks. en PlaceHolder?

Jeg er ved at bygge et template baseret CMS, hvor brugeren i web interfacet bag f.eks. skal kunne skrive en "tag", der så skal kunne indsætte en UserControl dynamisk istedet for tag'en.

F.eks. skal man kunne skrive [ShoppingBasket], og min kode skal så loade en ShoppingBasket UserControl, og indsætte den i stedet for tag'en.

Håber det er klart nok hvad jeg forsøger at gøre.

/SoerenS
Avatar billede powernodes Nybegynder
21. september 2004 - 13:04 #1
Hvorfor vil du ikke have at din bruger skal bruge alm. asp tags? Og når vi snakker cms er det da oplagt at du laver nogle custom controls til dine brugere.

så skriver din bruger fx:

<cms:ShopBasketPlaceholder id="ShopBasketPlaceholder1" runat="server" />

eller hvis templated (som nok er lidt federe for dine brugere)

<cms:TemplatedShopBasketPlaceholder id="TemplatedShopBasketPlaceholder" runat="server" UseHeader="true">
  <HeaderTemplate>
    <h1>bla</h1>
  </HeaderTemplate>
  <ItemTemplate>
    Pris: <%# Container.ItemPrice %>
  </ItemTemplate>
</TemplatedShopBasketPlaceholder>
Avatar billede powernodes Nybegynder
21. september 2004 - 13:05 #2
og lige et korrekt lukke tag </cms:TemplatedShopBasketPlaceholder> ;o)
Avatar billede soerens Nybegynder
21. september 2004 - 13:16 #3
powernodes >>
Jo, jeg overvejer at lave syntaksen ala dit forslag. Det kommer i næste version, men i princippet er det jo egentligt ligemeget. Mit eksempel på "tag's" er i virkeligheden også lavet en delt mere komplekst, men er her blevet forsimplet.

Men din kommentar har egentligt ikke noget med mit problem at gøre.
Hvordan indsætter jeg dynamisk UserControl'en ud fra hvad brugeren/webmasteren har indtastet (informationerne ligger selvfølgelig i en database)?

Husk på at "tag"'sene ikke står skrevet direkte i en .aspx-fil eller lignende, men kommer som data nede fra CMS'ets database.
Avatar billede thrytter Nybegynder
21. september 2004 - 15:10 #4
Prøv om du kan bruge flg. (hurtige) eksempel til noget, lidt udpenslet for overskuelighedens skyld.

Dim sCommandList As String
Dim sCommandArray() As String
Dim sControlName As String

Dim i As Integer

sCommandList = "<b>Tekst 1</b><br>[UserControl1]<br><font size=3 color=red>Tekst 2</font>[UserControl2]<br>Tekst3"

sCommandList = sCommandList.Replace("[", "#[")
sCommandList = sCommandList.Replace("]", "]#")

sCommandArray = Split(sCommandList, "#")

For i = 0 To sCommandArray.Length - 1
  If sCommandArray(i).IndexOf("[") <> -1 Then
    sControlName = sCommandArray(i)
    sControlName = sControlName.Replace("[", "")
    sControlName = sControlName.Replace("]", "")

    Select Case sControlName
      Case "UserControl1"
        Me.Controls.Add(New UserControl().LoadControl(sControlName & ".ascx"))
      Case "UserControl2"
        Me.Controls.Add(New UserControl().LoadControl(sControlName & ".ascx"))
    End Select
  Else
    Me.Controls.Add(New LiteralControl(sCommandArray(i)))
  End If
Next
Avatar billede soerens Nybegynder
21. september 2004 - 16:02 #5
Genialt, lige det jeg er ude efter!

Post et svar, og der er point til dig!
Avatar billede thrytter Nybegynder
21. september 2004 - 16:05 #6
værsgo
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