Avatar billede phuongkbh Nybegynder
24. juni 2009 - 11:41 Der er 5 kommentarer

Find alle placeholders i en masterpage

Hej eksperter!

Vil gerne have lavet en funktion der retuner alle placeholders i en masterpage i et array.

Er nået frem til denne funktion. Den finder alle placeholders på min nuværende side. Vil gerne have skiftet Page.Controls ud så den henter controllerne fra en masterpage (myMasterPage.Controls) istedet for.

Er det muligt??

    Function GetPlaceholders(ByVal myMasterPage As MasterPage) As IList

        Dim placeholders As IList = New ArrayList()

        Dim ctrl, htmlCtrl As Control

        For Each ctrl In Page.Controls
            If TypeOf ctrl Is HtmlForm Then
                For Each htmlCtrl In ctrl.Controls
                    If TypeOf htmlCtrl Is PlaceHolder Then
                        placeholders.Add(htmlCtrl.ID)
                    End If
                Next
            End If
        Next

        Return placeholders

    End Function
09. juli 2009 - 13:51 #1
Avatar billede phuongkbh Nybegynder
09. juli 2009 - 14:11 #2
Hej,

Jeg skal hente alle placeholders udfra en anden masterpage end dens egen. Fandt en løsning ved at bruge regex istedet for.

Dim contents, pattern, placeholder As String
Dim objStreamReader As StreamReader

objStreamReader = File.OpenText("MASTERPAGE FILEN")
contents = objStreamReader.ReadToEnd()
pattern = "(?:<asp:PlaceHolder[^>]+ID\s*=\s*[""'])([^""']*)(?:[""'][^>]*>)([^<]*)(?:</asp:PlaceHolder>)"

For Each m In Regex.Matches(contents, pattern, RegexOptions.IgnoreCase)
            placeholder = m.Groups(1).Value
            ' Her er det så id'et på placeholder jeg gerne vil gemme
Next

objStreamReader.Close()


Tak for hjælpen ellers. Hvis du lægger et svar kan du lige få de point.
09. juli 2009 - 14:17 #3
Behøver ikke point, men vil gerne have lov at spørge dig, hvorfor du har lavet den løsning som du har ?

Har du flere master pages indeni hinanden ?
Avatar billede phuongkbh Nybegynder
09. juli 2009 - 14:49 #4
Det er til et CMS system, hvor man kan vælge forskellige templates (Master pages) til dens sider.
Man skal så udfra den template man har valgt se hvilke placeholder der er tilknyttet. Så kan man vælge det modul man vil have loadet det ind i den ønskede placeholder.

Håber det gav mening =)
09. juli 2009 - 14:53 #5
cool
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
Kurser inden for grundlæggende programmering

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