11. april 2005 - 09:22Der er
40 kommentarer og 1 løsning
Hjælp til at lave en postback funktion
Hej, jeg har lavet en side hvor jeg bruger Request.QueryString["alpha"] til styrrer et database udtræk, og nu ville jeg så gerne havde en dropdown box ind, det virker også fint fint min ind til jeg trykker på mit link som så sætter min alpha til noget nyt, for så laver den ikke PostBack og der for "resetter" den min dropdown box. Kan man lave på en eller anden må en funktion så jeg laver en postback.
Grunden til jeg bruger en Request.QueryString["alpha"] til at hold styr på min data er at jeg looper hele alfabet ud i en laben min et html link
du kan godt lave dit link til en postback-funktion (en linkbutton). Men som du selv er inde på, så virker postback kun så længe at adressen på siden ikke ændrer sig.
for (int i = 0; i < alfabet.Length; i++) { LinkButton link = new LinkButton; link.Text = alfabet[i].ToString(); link.CommandArgument = alfabet[i].ToString(); link.Click += new System.EventHandler(link_OnClick);
En placeholder er bare en control som du kan bruge til at smide noget i. Den renderer ikke nogen selv, så hvis den er tom når siden renderes kan man ikke se at den er der. Men meget god til ligesom at definere at "her skal der være nogen controller. Jeg ved ikke hvor mange, eller hvilke, men, her skal der bare være nogen".
okey, den skal jeg havde lidt mere hjælp til. Når jeg udskriver linket knappen så stå de unden mellenrum, og det er lidt øv. En måde man kan indsætte et mellenrum unden at det blever en del af linket.
også har jeg lavet den her even private void link_OnClick(object sender, System.EventArgs e) { Response.Write("arg!"); }
for (int i = 0; i < alfabet.Length; i++) { LinkButton link = new LinkButton; link.Text = alfabet[i].ToString(); link.CommandArgument = alfabet[i].ToString(); link.Click += new System.EventHandler(link_OnClick);
det virker vist nu, men jeg tænket på om det kan huske det på en eller anden måde (nej ikke en session) hvor hvad sker der hvis jeg bruger en pagging funktion på et datagrid, så vel den ikke huske hvilke bogstav jeg har trykket på eller hvad?
ikke helt... den gælder kun for den enkelte side, og indholdet af den bliver ikke gemt på serveren men bliver sendt med til klienten. Du er afhængig af den, og bruger den implicit hele tiden uden at vide det. Viewstate er det der gør at du kan bruge paging i et datagrid, at dine textboxe husker hvad der stod i dem mellem postbacks m.m.
Du kan gemme næsten hvad som helst i en viewstate, så længe objectet kan serialiseres. På klienten bliver viestate til noget i den her retning:
nu forstå jeg ikke rigtig, nu får jeg den her fejl Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
i line 81, når jeg prøver at gå ind på siden.
Line 81 _bogstav = this.ViewState["Bogstav"].ToString();
Første gang jeg kommer ind på siden så stå der ikke noget i ViewState["Bogstav"] (det er okey) Når jeg trykker på et link så stå der stadig væk ikke noget i ViewState["Bogstav"] (Ikke godt) Hvis jeg så trykker en gang til så kommer det bogstav frem som jeg trykkede på første gang
Samtid kan jeg ikke bruger .Length på _bogstav, hvorfor?
du skal huske på rækkefølgen af udførslen af dine events
1) PageLoad 2) link_OnClick
dvs. at når man trykker på et link, vil dette ikke kunne ses i PageLoad, da det først bliver registreret i click-eventet for dit link, som bliver udført EFTER din PageLoad
nu ved jeg selvfølgelig ikke om det er det der er din problemstilling, det var bare et skud i tågen. Men det er ofte et af de problemer folk render ind i, når man begynder at rode med postback og viewstate, nemlig rækkefølgen på hvordan ens kode bliver udført.
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.