[C#] ASP.NET custom control property als content

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 06-03 20:19

_Thanatos_

Ja, en kaal

Topicstarter
Ik ben een custom control in ASP.NET (2.0) aan het maken, maar stuit op een probleempje. Je moet het wrs gewoon ff weten, maar ik weet het dus niet :)

Ik heb een property waar een hoop tekst in moet komen. Zoals iedereen weet, worden properties standaard als attributen in de tag gegoten. Het is dus niet bepaald mooi als een hele lap tekst in een attribuut staat. Dus wat ik wil is dat deze property in de content van de tag staat.

Nu ziet ie er zo uit:
HTML:
1
2
<thany:FormattedText ID="FormattedText1" runat="server"
 Lines="hier een hele lap tekst" />

Maar als het kan, zou ik em zo eruit willen laten zien:
HTML:
1
2
3
<thany:FormattedText ID="FormattedText1" runat="server">
hier een hele lap tekst
</thany:FormattedText>

En zo ziet de property eruit:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
[Bindable(true)]
[Category("Appearance")]
[Editor(typeof(System.ComponentModel.Design.MultilineStringEditor),
 typeof(System.Drawing.Design.UITypeEditor))]
public string Lines {
    get {
        string lines = (string) ViewState["Lines"];
        if (lines == null)
            return string.Empty;
        return lines;
    }
    set { ViewState["Lines"] = value; }
}

Wat moet ik doen om ASP.NET zover te krijgen dat ie doet wat ik wil? :)

日本!🎌


  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Ik heb even vluchtig gekeken maar zit hier niet iets bruikbaars in?
Het gaat over een custom nospamemailhyperlink control waar ook content tussen de control tags staat. Misschien waard om even naar te kijken.

Nu met Land Rover Series 3 en Defender 90


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Je kunt elke property natuurlijk ook vanuit code invullen, hoeft niet perse in tags.

Mocht je het toch in tags willen doen, dan kun je in principe elke private property in je class, als sub-tag invullen, mits die de interface IParserAccessor implementeert. Je zou dus een class 'Lines' (of iets als String ofzo als je het algemener wilt houden) moeten aanmaken die IParserAccessor implementeert, dan moet je de method AddParsedSubObject zelf invullen en kun je dit doen:

code:
1
2
3
4
5
<thany:FormattedText runat="server">
   <thany:Lines>
       Al je tekst
   </thany:Lines>
</thany:FormattedText>


Als shortcut kun je van de property Lines ook een ListItemCollection maken en dan zo doen:
code:
1
2
3
4
5
<thany:Formattedtext ...>
   <asp:ListItem>
      Al je tekst
   </asp:ListItem>
</thany:FormattedText>


[edit] Had het fout, even ge-edit

[ Voor 41% gewijzigd door Not Pingu op 28-08-2005 22:26 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 06-03 20:19

_Thanatos_

Ja, en kaal

Topicstarter
MTWZZ, daar zit inderdaad iets bruikbaars in! Het is niet zo straightforward als het op het eerste gezicht lijkt met het PersistenceMode attribuut, maar het werkt wel :)

[ Voor 3% gewijzigd door _Thanatos_ op 28-08-2005 22:37 ]

日本!🎌