Avatar billede cdull Nybegynder
11. marts 2007 - 19:14 Der er 16 kommentarer og
1 løsning

Ajax. Trigger updatepanel fra usercontrol

Jeg har en side som skifter indhold med AJAX alt efter hvad der trykkes på.
Der loades så nogle usercontrols ud fra valget.

Nu vil jeg gerne kunne trigger main updatepanel fra min usercontrol.

Hvordan gør jeg dette?
Avatar billede dr_chaos Nybegynder
11. marts 2007 - 19:37 #1
Du skal lave et event i din user control.
Når du trigger det event kan det blive fanget af dit updatepanel:
<asp:Button ID="MyButton" runat="server" Text="Submit" />

  2:  <atlas:UpdatePanel ID="MyUpdatePanel" runat="server" Mode="Conditional">

  3:    <ContentTemplate>

  4:      <asp:Label ID="Message" runat="server"></asp:Label>

  5:    </ContentTemplate>

  6:    <Triggers>

  7:      <atlas:ControlEventTrigger ControlID="MyUsc" EventName="Click" />

  8:    </Triggers>

  9:  </atlas:UpdatePanel>
Avatar billede cdull Nybegynder
11. marts 2007 - 19:45 #2
ControlID="MyUSC"
min usercontrols navn, eller controls navn?

kan du give et eks. på en event som den ville fange.
Avatar billede dr_chaos Nybegynder
11. marts 2007 - 19:57 #3
tilføj dette i codebehind af din usercontrol:
public delegate void MinEventHandler(EventArgs e);
public event MinEventHandler Changed;

For at raise event fra din usercontrol bruger du:
if (Changed!= null)
        {
            Changed(new EventArgs());
        }
Avatar billede dr_chaos Nybegynder
11. marts 2007 - 20:01 #4
på din side hvor du bruger usercontrolen bruger du:
<uc1:MyUsc id="MyUsc" runat="server" OnChanged="Enellerandenmetode" />

<atlas:UpdatePanel ID="MyUpdatePanel" runat="server" Mode="Conditional">
<ContentTemplate>
<asp:Label ID="Message" runat="server"></asp:Label>
</ContentTemplate>
<Triggers>
<atlas:ControlEventTrigger ControlID="MyUsc" EventName="Changed" />
</Triggers>
</atlas:UpdatePanel>


i codebehind
protected void Enellerandenmetode(eventargs e)
{
//lav et eller andet
}
Avatar billede cdull Nybegynder
11. marts 2007 - 20:13 #5
<uc1:MyUsc id="MyUsc" runat="server" OnChanged="Enellerandenmetode" />

hvad er uc1? skal jeg først register usercontrollen?
eller hvad?
Avatar billede dr_chaos Nybegynder
11. marts 2007 - 20:30 #6
ja
Avatar billede cdull Nybegynder
11. marts 2007 - 20:41 #7
Jeg kan slet ikke finde rundt i det.

Hvad i min usercontrol peger over på
protected void Enellerandenmetode(eventargs e)


Min knap er på min usercontrol.
Avatar billede dr_chaos Nybegynder
11. marts 2007 - 21:50 #8
på siden som skal vise user control bruger du:
<uc1:MyUsc id="MyUsc" runat="server" OnChanged="Enellerandenmetode" />
I codebehind på den bruger du:
protected void Enellerandenmetode(eventargs e)
Avatar billede cdull Nybegynder
11. marts 2007 - 22:18 #9
Forklar mig lige en gang hvad der sker fra jeg trykker på min knap i usercontrollen til at jeg kalder en funktion i min main side.

Jeg kan virkeligt ikke se logikken i det.
Kan ikke se hvor henne, der er defineret noget som helst om min knap fra usercontrollen.
Avatar billede cdull Nybegynder
11. marts 2007 - 22:25 #10
Undskyld hvis jeg lyder lidt gnaven, det er ikke min hensigt. Har siddet med dette problem i et stykke tid i dag, og det irriterer mig godt og grundigt.
Avatar billede dr_chaos Nybegynder
12. marts 2007 - 13:31 #11
paste lige kode til din usercontrol.
Avatar billede cdull Nybegynder
12. marts 2007 - 16:06 #12
ASPX: Indeholder denne LinkButton.
<asp:LinkButton ID="Bestil" runat="server" CommandArgument="6" CommandName="Bestil" OnCommand="Change_Command">Bestil</asp:LinkButton>


Der er ikke rigtigt defineret noget i code behind endnu.

Den side som includere denne usercontrol er.
MAIN.ASPX: Og har et UpdatePanel med diverse triggers.

<asp:UpdatePanel ID="Panel1" runat="server">
   
   
    <ContentTemplate>

    <asp:PlaceHolder ID="Container" runat="server" />

    </ContentTemplate>
   
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
        <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" />
        <asp:AsyncPostBackTrigger ControlID="Button3" EventName="Click" />
        <asp:AsyncPostBackTrigger ControlID="Button4" EventName="Click" />
        <asp:AsyncPostBackTrigger ControlID="Button5" EventName="Click" />
     
   
       
    </Triggers>
    </asp:UpdatePanel>


CodeBehind MAIN.ASPX.CS: Her er min Change_Command event, som fanger de her LinkButton clicks.

protected void Change_Command(Object sender,CommandEventArgs cmd )
{
//Logik.
Panel1.UpdateMode = UpdatePanelUpdateMode.Conditional;
Panel1.Update();

}

Ellers er der ikke meget af det andet i koden der har indflydelse på det her.
Og jeg så gerne at den LinkButton i min UserControl hoppede ind i Change_Command
Avatar billede dr_chaos Nybegynder
13. marts 2007 - 16:38 #13
har du defineret en Change_Command i codebehind på usercontrol ?
Avatar billede dr_chaos Nybegynder
13. marts 2007 - 16:38 #14
hvordan ser din erklæring af usercontrol ud?
Avatar billede cdull Nybegynder
28. januar 2008 - 21:35 #15
Sorry for det MEGET sene svar og manglende tilbagemelding. Det var et hektisk projekt :-)

Jeg fandt aldrig en løsning til dette.
Hvad gør vi med point ?
Avatar billede dr_chaos Nybegynder
28. januar 2008 - 21:44 #16
Behold du dem bare jeg mangler ikke nogen.
Avatar billede cdull Nybegynder
28. januar 2008 - 22:05 #17
Så lukker jeg. Tak for hjælpen anyways.
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