Avatar billede lajer Nybegynder
05. september 2004 - 22:59 Der er 8 kommentarer og
2 løsninger

Håndtere tekst i en UserControl

Hej E.

Jeg har skrevet en UserControl og indsat den på min aspx side sådan:

<Bla:Tester runat="server">
    Tester
</Bla:Tester>

Mit spørgsmål går på: hvordan for jeg indsat Bla:Tester's tekst i min UserControl ?

Når jeg viser siden, for jeg følgende Exception:

Meddelelse om parsefejl: Konstantværdien ('Tester') er ikke tilladt i en 'ASP.MainPage_ascx'.
Avatar billede wired Nybegynder
05. september 2004 - 23:13 #1
Har du trukket usercontrollen ind på siden? Hvis ikke skal den defineres øverst på siden.

Ellers er det jo alm. html
Avatar billede wired Nybegynder
05. september 2004 - 23:18 #2
Øhhh. du skal ikke sætte teksten mellem <Bla:Tester runat="server"> og </Bla:Tester> men på selve usercontrol siden?

Hvis du vil sætte tekste i fra en anden side er det næsten nemmest at gøre det fra code siden. Ved først at henvise til siden.class.object.etc.

Eller loade siden ind. Uden at have mulighed for at prøve det her, mener jeg at det i vb er noget i retning af :

dim m as new object
m = Loadcontrol("Min.ascx")
me.loadcontrol(m)

Ja og så kan du jo.
dim lb as new label
m.loadcontrol(lb)
lb.text="HEJ"

noget i den retning.
Avatar billede lajer Nybegynder
05. september 2004 - 23:24 #3
Hej wired.

Jeg tror måske at vi ikke helt er inde på samme bølgelænge. Enten det, eller også kan jeg ikke helt regne dit sidste svar ud.

Jeg har naturligvis en bunke html i min UserControl - men det er inde imellem alt det her html at jeg vil have "Tester".


Altså:
<html>
<blabla>

    [[TESTER SKAL FYLDES IND HER]]

</blabla>
</html>


Håber at dette kan kaste lidt mere lys over mit problem. Hvis ikke, så paster jeg noget kode? :-)

Mvh
Torben Lajer
Avatar billede wired Nybegynder
06. september 2004 - 00:18 #4
Er på vej i seng, men prøv følgende på din hovedside(webform1.aspx.vb):
----
Dim MyCtrl As Control = LoadControl("MinCtrl.ascx")
Me.controls.add(MyCtrl)
----
Nu skulle du gerne have adgang til alle dine controls via MyCtrl.
Ser nærmere på det i morgen, har ikke adgang til .NET herfra.
Avatar billede wired Nybegynder
06. september 2004 - 16:24 #5
I starten af din klasse(webform1.aspx.vb) skriver du:
    Protected myctrl As System.Web.UI.Control
I Page_load skriver du:
    myctrl = LoadControl("MyUserControl.ascx")
    Me.Controls.Add(myctrl)
Hvis du sætter en knap på siden kunne du skrive i Button1_Click
    Dim tc As New HtmlTableCell
    tc = myctrl.FindControl("HEJ")
    tc.InnerHtml = "<B>FARVEL</B>"

Det er dog under forudsætning af, at du i din MyUserControl.ascx her en tabel:
<table>
  <tr><td id="HEJ" runat="server" >HEJ</td><td id="ny">NY</td></tr>
</table>
Avatar billede lajer Nybegynder
07. september 2004 - 00:27 #6
Hej wired.

Igen tror jeg at vi snakker forbi hinanden.
Det jeg ville, var at fange teksten i min control

Sådan at jeg kunne skrive <MinControl:ControlTest runat="server" id="test">Det er den her tekst jeg vil fange i min control, men når jeg skriver noget her, så for jeg en exception</MinControl>

MEN, det er ikke vigtigt nu. Jeg har lavet en workarround. I stedet for at skrive teksten på min aspx side, har jeg lave en property i min control. I denne property sætter jeg en streng, som control'en så håntere og sætter ind korrekt.

Mange tak for hjælpen ellers.

Skal vi slå halv skade om point?
Avatar billede wired Nybegynder
07. september 2004 - 07:09 #7
Ok... Det er bare i orden..
Avatar billede bulbman Nybegynder
07. september 2004 - 22:50 #8
Der du ønsker er, at du fra den side der indeholder(parent) usercontrolen skal styre hvilken text der kommer på et bestemt sted inde i selve usercontrollen(child)?

i så fald skal du i usercontrollen(Child) oprette en variable der er public
som flg.: Public strText as string

så kan du bruge strText til at sætte værdien i f.eks. et label control.

derefter på "Parent" siden: skriver du:
<MinControl:ControlTest
strText="Tekst der skal vises på siden"
runat="server"
id="test"></MinControl:ControlTest>
Avatar billede lajer Nybegynder
08. september 2004 - 18:27 #9
bulbman, som jeg skrev i mit tidligere indlæg, så var det netop sådan at jeg klarede problemet.
Men det var ikke det jeg ville. Det jeg ville var at sætte "Tekst der skal vises på siden" som teskten til tagget og ikke som en attribute/property.
Avatar billede bulbman Nybegynder
13. september 2004 - 13:08 #10
hmmm det tror jeg ikke du kan.
og jeg skulle mene at den korrekte måde er den måde som du selv har brugt og som jeg har beskrevet.

Hilsen Bulbman
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