Avatar billede g4nd4lf Nybegynder
23. januar 2005 - 16:07 Der er 5 kommentarer

Custom placeholder

Jeg er ved at lave en side hvor jeg har en 3x3 table, denne table skal bruges på mange sider hvor feltet i midten indeholder informationen på den givne side resten er blot statisk.
Jeg har derfor tænkt på at lave en custom control der arver fra Placeholder controllen, sådan indholdet bliver placeret i det midterste felt.
Jeg har dog ikke før haft brug for custom controls, så har derfor ikke styr på hvordan man laver dem...
Nogen der lige hurtigt kan brygge koden til sådan en control sammen, eller har et par gode direkte links til noget info?
Avatar billede burningice Nybegynder
23. januar 2005 - 16:19 #1
en placeholder bliver brugt til at placere andre controller i programmeringsmæssigt. Umiddelbart lyder det ikke som om det er det du skal?

hvad bestemmer hvad den dynamiske den skal bestå af? En querystring, en session-værdi eller?

Det næmmeste vil være at lave dette setup:


<table>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td><asp:placeholder id="dynamiskIndhold" runat="server" /></td>
    <td></td>
  </tr>
  <tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>


og via noget kode udskifte indholdet af din placeholder. Det kan f.eks. være

if (Request.Querystring["page"] == "soeg") {
  dynamiskIndhold.Controls.Add(this.LoadControl("soegeside.ascx"));
}
Avatar billede g4nd4lf Nybegynder
23. januar 2005 - 16:29 #2
Jeg vil egentlig hellere hvis det bliver den anden vej rundt, sådan jeg blot kan placere indholdet inde i den her custom control jeg så kan bruge på de sider jeg nu har lyst til.
Avatar billede burningice Nybegynder
23. januar 2005 - 16:42 #3
så laver du en usercontrol, ikke custom control - eller jo, det kan du for så vidt godt, men der skal du programmere dig frem til dit design, med mindre du bruger en Usercontrol -> Custom Control converter. Så i dette tilfælde vil det være en User Control

Userontrollen skal så indeholde dette:

<table>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td><asp:PlaceHolder id="dinSoegeControl" runat="server" /></td>
    <td></td>
  </tr>
  <tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>

Der er altså ikke noget med Placeholdere med, og da slet ikke at nedarve fra den. Jeg har kun set den nedarvet en enkelt gang og det var for at implementere noget automatisk ViewState-handling, og altså ikke noget med indholdet i den.

Hvad der skal stå på placeholderens plads kan bestemmes på mange forskellige måder, men dette er f.eks. en meget fiks måde:

<ditTag:dinUserControl id="id" runat="server" Inhold="Artikkel" Nummer="45" />
Avatar billede g4nd4lf Nybegynder
23. januar 2005 - 16:55 #4
Men hvis indholdet i placeholderen skal bestå af diverse controls o.lign. er der så en måde at få indholdet ind her: <dittag:dinusercontrols>HER</dittag:dinusercontrol>
Avatar billede burningice Nybegynder
20. maj 2005 - 13:14 #5
:) man finder sjove ting når man rydder op i sine mails.

Det lyder mere som om det er MasterPages du er ude efter. Prøv at kig på den her

http://metabuilders.com/Tools/MasterPages.aspx
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