Avatar billede rif1900 Nybegynder
23. februar 2009 - 11:03 Der er 3 kommentarer og
1 løsning

Problem med UpdatePanel

Hej eksperter!

Jeg er løbet ind i et noget irriterende problem.

Jeg har en UserControl der indeholder en List control, der har et event der hedder CostumButtonCallback.
Dette event håndterer jeg der hvor UserControlen bliver anvendt.
Jeg har heller ikke nogle problemer med at fange dette.

CallBack'et foregår via AJAX uden PostBack.

Det jeg så ikke kan få til at fungerer er at få mit UpdatePanel til at opdaterer.

Jeg har prøvet at tilføje en trigger men det er jo ikke muligt siden eventet bliver raiset fra en control inde i min usercontrol.

Usercontrolens ID er: uc_TenantList
  - > Listen i uc_TenantList har ID: grid_tenants
  - > UC'en har en funktion der returnerer dette: GetGridView()

Jeg har en Scriptmanager og der gør jeg dette:
ScriptManager1.RegisterAsyncPostBackControl(uc_TenantList.GetGridView());

Jeg tilføjer så min event handler:
uc_TenantList.GetGridView().CustomButtonCallback += grid_tenants_CustomButtonCallback;

I min eventhandler grid_tenants_CustomButtonCallback loader jeg så data ind i en anden UC, som jeg så via updatepanel prøver at opdatere.

<asp:UpdatePanel ID="UpdatePanel1" ChildrenAsTriggers="true" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<uc:TenantDetails runat="server" ID="uc_TenantDetails" />
</ContentTemplate>
</asp:UpdatePanel>

Kan ikke tilføje grid_tenants som trigger da denne jo kun eksisterer inde i uc_TenantList

Håber en eller anden kan hjælpe mig til den rigtige måde at løse dette her på. Jeg er ikke lige 100 meter mester i Events så vil gerne tro at min måde indtil videre er en del væk fra best practice.
Avatar billede rif1900 Nybegynder
23. februar 2009 - 12:42 #1
Jeg er selv kommet et stykke videre og har tilføjet eventet fra kontrollen inden i UC til selve UC'en. Så nu kan jeg tilføje en eventhandler direkte der hvor jeg bruger min UC.

Jeg kan også sætte en trigger op men det hjælper ikke.
Mit update panel ser nu sådan her ud:
<asp:UpdatePanel ID="UpdatePanel1" ChildrenAsTriggers="true" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<uc:TenantDetails runat="server" ID="uc_TenantDetails" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="uc_TenantList" 
EventName="GridCostumButtonCallback" />
</Triggers>
</asp:UpdatePanel>

Jeg kommer ind i min eventhandler og det hele men det skide panel opdateres ikke når jeg kalder UpdanetPanel.Update();
Avatar billede rif1900 Nybegynder
23. februar 2009 - 14:03 #2
Holder alle de hardcore AJAX folk fri idag? :)
Avatar billede rif1900 Nybegynder
23. februar 2009 - 15:00 #3
Okay jeg er kommet et stykke videre i debugging.

Tilføjer jeg en <asp:Button control i stedet for min usercontrol og regger den i Scriptmanageren som en asynkron postback control, så kan jeg godt få opdateret mit updatepanel.

Der er kun når jeg vil benytte de events der er udbudt af den control jeg anvender i min usercontrol det går galt.
Avatar billede rif1900 Nybegynder
09. marts 2009 - 16:16 #4
Problem solved

Man skal have begge kontroller i updatepanels hvis nogle skulle møde den her udfordring.-
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