Avatar billede moller2567 Nybegynder
27. marts 2008 - 10:07 Der er 2 kommentarer og
1 løsning

Updatepanel inden i wizard

Jeg har en wizard. På et step i wizarden er der en søgeformular, hvor resultatet vises i et gridview, der er placeret i et updatepanel, således at jeg undgår postback ved søgning.

I gridviewet er der en "Vælg knap", som jeg fanger i gridviewets row command. Når man så har valgt en af rækkerne i gridviewet vil jeg gå til næste step i wizarden. Det gør jeg via rowcommand:

protected void GridViewSoegeResultat_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "Vaelg")
{
    ..
    ..
    Wiz_FlytInstrumenter.MoveTo(this.WizStepVaelgKontakt);
}
}

Sætter jeg et breakpoint ind, kan jeg se, at koden bliver udført, men wizarden hopper IKKE til næste step. Trykkker jeg på Vaelg knappen en gang til bliver row commanden udført igen, og wizarden hopper til næste step, som den ønsket. Men hvorfor sker det ikke på første click på knappen?

Hvis jeg ikke benytter et updatepanel, så virker alt som det skal.

Nogen ideer ?
Avatar billede crazysnap Seniormester
27. marts 2008 - 15:29 #1
Hej moller2567,

Det er fordi du ikke har et updatepanel omkring hele din Wizard. Din wizard opdaterer derfor kun alt sin "UI" ved et ordinært postback. At du propper et updatepanel ind i maven på din wizard (i en af dine steps) gør jo ikke at hele din wizard opdateres når noget inde i "dens mave" (updatepanel) ændres.
De eneste løsninger jeg kan komme på er derfor enten at proppe et updatepanel uden om hele din wizard eller få dine buttons i dit GridView til at udføre et ordinært postback (hvis dette er muligt, har ikke prøvet det før med knapper i et gridview). Men normalt kan man jo sætte:

<Triggers>
      <asp:PostBackTrigger ControlID="ButtonID" />
</Triggers>

på sit updatepanel. Og dermed sikre at en knap inde i sit updatepanel trigger et normalt postback når der klikkes på den. Men har som sagt ingen idé om dette virker på knapper i et GridView.

Håber dette hjælper dig videre.

Mvh.
Snap
Avatar billede moller2567 Nybegynder
27. marts 2008 - 16:36 #2
Det var lige det, der skulle til.

Du har ret mht. til at knapper mm. indeni updatepanelet kun opdaterer updatepanelet (men hvorfor opdaterer knappen så hele siden anden gang jeg trykker på den ??)

Jeg kan dog ikke fange knapperne i gridviewet som triggere da der jo er en knap for hver række i gridviewet som der ikke umiddelbart kan fåes fat i, så det giver en fejl om, at knappen ikke kan findes.

Men sætter jeg gridviewet som postback trigger, så virker det.

<Triggers>
      <asp:PostBackTrigger ControlID="GridViewID" />
</Triggers>

Send lige et svar, så skal jeg fluks levere lidt point.

Tak for hjælpen.
Avatar billede crazysnap Seniormester
27. marts 2008 - 16:58 #3
Hej Igen,

Ja at sætte dit grid som postbacktrigger giver mening og jeg er glad for at høre du fik det til at virke. Jeg kan dog ikke svare på hvorfor knappen inde i dit updatepanel opdatere hele siden når du klikker på den anden gang (måske fordi din wizard halvt registrerede at du skiftede side første gang og næste gang derfor skifter side fordi Page_Load køres igen ved et partial postback).

Anyways, mit svar kommer her. :)

Mvh.
Snap
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