Button Page Load segitseg

Címkék
Button Page Load segitseg
2010-02-21T15:25:11+01:00
2010-03-18T22:07:05+01:00
2022-11-17T03:45:40+01:00
zzoltan
Asp-ben van egy problemam.Tesztelesi portalt fejlesztek asp-ben C#.A kerdesek es a valaszok adattablaban vannak eltarolva.Ha a felhasznalo rakattint a teszte az megindul es egy cimkeben talalhato a kerdes egy RadioButtonListben pedig szeretnem a valaszokat.

sqlDataRead-el olvastatom ki a kerdeseket es a valaszokat, de az a problemam amikor a felhasznalo rakatttint a tovabb gombra nem hozza le az uj kerdest es valaszt, ugyanis az oldal ujratoltodik es elejerol indul az egesz.

ha while ciklussal olvastatom ki az adatokat akkor pedig atirja oket.

Az lenne a megoldas ha valahogy meg tudnm oldani hogy a gomb lenyomasara ne toltodjon be ujra az egesz lap (page load) hanem csak a gomb esemenyeben megirt kod fusson le.

Hogyan lehetseges ez?

Koszi
Mutasd a teljes hozzászólást!

  • Akadályozd meg, hogy postback (illetve submit) triggerelődjön.

    Részletek itt.
    Mutasd a teljes hozzászólást!
  • Hello

    Az lenne a megoldas ha valahogy meg tudnm oldani hogy a gomb lenyomasara ne toltodjon be ujra az egesz lap


    Updatepanel

    Újra generálja a teljes lapot a szerver, de csak az updatepanel -ben lévő részeket küldi vissza ezzel csökkentve a forgalmat és a lapbetöltődési időt.

    Ahhoz hogy a második kérdés majd azután a harmadik kérdés jelenjen meg használhatsz egy session változót és ennek az értéke alapján jeleníted meg a megfelelő kérdést.
    if (Session["kerdes"] == null)
    {....}
    else if (Session["kerdes"].ToString() == "1")....


    Ha ez így nem érthető akkor írj vissza és megpróbálom részletezni.

    Meg lehet oldani HiddenField-el is és ha jól tudom azt kódolni kell.
    Mutasd a teljes hozzászólást!
  • Koszi a valaszt.Kerlek reszletezned egy kicsiket?esetleg ha van egy kis kodeszleted akkor azt nagyon megkoszonnem.
    Mutasd a teljes hozzászólást!
  • c# page load eseménybe
    if (Session["kerdesSorsz"] == null) { Label1.Text = "Ez az első kérdés"; Session["kerdesSorsz"] = "2"; } else if (Session["kerdesSorsz"].ToString() == "2") { Label1.Text = "Ez a második kérdés"; Session["kerdesSorsz"] = "3"; } else if (Session["kerdesSorsz"].ToString() == "3") { Label1.Text = "Ez a harmadik kérdés"; Session["kerdesSorsz"] = "4"; }

    aspx

    <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br /> <asp:Button ID="Button1" runat="server" Text="Következő" /> </ContentTemplate> </asp:UpdatePanel>

    Az updatepanel nem feltétlenül szükséges a működéshez. Ha törlöd töröld a contenttemplate utasításokat is.
    Mutasd a teljes hozzászólást!
  • Tudnal estleg c#-os peldat erre?gondolok itt kodra.

    Ez a megoldas tunik legszimpatikusabbnak.
    Mutasd a teljes hozzászólást!
  • Tudnal estleg c#-os peldat erre?gondolok itt kodra.

    C#-ból C#-ot?
    Mutasd a teljes hozzászólást!
  • Úgy érted, másoljam be ide arról az oldalról, amire a linkem mutat?
    Mutasd a teljes hozzászólást!
  • Na, jó régen foglalkoztam már asp.net page lifecycle-lel, de valami mintha még derengene.

    Szóval az addig tiszta sor, hogy gombnyomáskor lefut a Page_Load, na de most jön amin meg fogsz lepődni (debuggerrel lecsekkolhatod): amikor megnyomod a gombot, akkor előbb lefut a Page_Load, majd csak ezután fut le a a gomb_Click eseménykezelője( és nem fordítva)

    Gondolom a Page_Loadban töltöd fel az űrlapodat
    sqlDataRead
    -el.
    Szóval ami ott van az édemesebb lenne áttenni mondjuk a Page_PreRenderbe, mer az tuti a gomb_Click után fog lefutni.
    Mutasd a teljes hozzászólást!
Címkék
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd