06. januar 2007 - 14:30
Der er
15 kommentarer og 1 løsning
Web User Control problem
Jeg har en web user control med en asp:button: <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> Men når jeg klikker på knappen sker der ingenting. Jeg får en blank side, i stedet for at for at hoppe ned i metoden: protected void Button1_Click(object sender, EventArgs e) { } Hvad er mon problemet?
Annonceindlæg fra Cepheo
06. januar 2007 - 14:31
#1
tjah... arver din ASPX side fra den rigtige aspx.cs fil? altså codebehind fil?
06. januar 2007 - 14:36
#2
Bliver din UserControl tilføjet dynamisk til siden?
06. januar 2007 - 14:52
#3
Kalp > Ja thrytter > Ja
06. januar 2007 - 14:54
#4
Indtil videre har jeg lavet en workaround, hvor jeg blot udfører instruktionerne når Page.IsPostBack = true Det kan jeg tillade mig, nu hvor jeg kun har en knap i min user control. Men det er ikke hensigtsmæssigt i længden.
06. januar 2007 - 15:06
#5
hmm... måske fordi det er et control.. prøv at ændre metoden til public void Button1_Click() { }
06. januar 2007 - 15:15
#6
Den går desværre ikke - får fejlen: No overload for 'Button1_Click' matches delegate 'System.EventHandler'
06. januar 2007 - 15:42
#7
jeg kan ikke umiddelbart huske det.. men synes bare ikke man laver det på den måde.. altså du burde vel bare lave en metode public void enMetode() { kode her } og så <asp:Button ID="Button1" runat="server" OnClick="enMetode" Text="Button" />
06. januar 2007 - 15:54
#8
hvis det heller ikke virker så skal virker dit eget sikkert fint nok hvis du gør sådan OnClick="Button1_Click()"
06. januar 2007 - 16:06
#9
Det er en eventhandler så begge forslag vil ikke virke.
06. januar 2007 - 16:08
#10
Når du tilføjer din UserControl dynamisk til siden, skal denne tilføjes ved hvert postback! Events virker kun hvis de kommer fra en kontrol som er indsat i kontroltræet.
06. januar 2007 - 16:11
#11
Ok - så hvis jeg har følgende Load: Control HomeAccount = LoadControl("HomeAccount.ascx"); PlaceHolder.Controls.Add(HomeAccount); PageTitle.Text = "General Status"; break; Hvad skal jeg så gøre i min kode for at få det til at virke?
06. januar 2007 - 16:15
#12
Du skal smide kontrollen ind på siden når det er nødvendigt! Kan du ikke gemme en værdi i ViewState der fortæller om den skal tilføjes til siden ved postback.
06. januar 2007 - 16:18
#13
Kontrollen er tilføjet - jeg tror ikke helt jeg forstår hvad du mener.
06. januar 2007 - 16:22
#14
Du skriver at "Kontrollen er tilføjet" - betyder det at den tilføjes ved HVERT postback? At du tilføjer kontrollen i en eller anden eventhandler eller ved en eller anden betingelse betyder ikke at den automatisk bliver tilføjet igen ved postback. Hvis ja, så burder der ikke være noget problem ved events.
06. januar 2007 - 16:28
#15
Ah nu er jeg med. Du har ret thrytter - jeg smider den ved postback'en på hovedsiden (aspx-siden). Tak for hjælpen - smid et svar.
06. januar 2007 - 16:30
#16
svar - og godt at det nu virker.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.