Avatar billede linebille Nybegynder
17. marts 2004 - 13:14 Der er 12 kommentarer og
1 løsning

WebControls.Button opfører sig mærkeligt

jeg har en asp.net side med en WebControls.Button minKnap. I codebehind klassen har den en
minKnap_Click(object sender, System.EventArgs e) metode, og det er fint. Men når jeg opdaterer siden (trykker reload) bliver minKnap_Click-metoden kørt? jeg er fuld af undren...
Avatar billede jaffafo Nybegynder
17. marts 2004 - 13:28 #1
vis noget kode... :)
Avatar billede linebille Nybegynder
17. marts 2004 - 13:35 #2
i .aspx filen:
<asp:Button id="SubmitReportBug" runat="server" Text="Report a bug"></asp:Button>

fra den click metode:
det bliver jo en anelse uoverskueligt ud af den sammenhæng...  :-)
private void SubmitReportBug_Click(object sender, System.EventArgs e)//ServerClick
{   

    string filename = "";
    bool success = false;
    FileStream fs = null;
                       
    try
    {
        int bugTypeID = DropDownListChooseBugType.SelectedIndex + 1;
        int projectID = DropDownListChooseProject.SelectedIndex + 1;
               
        filename = FileAttach.PostedFile.FileName;   
               
               
            if (filename.Equals(""))
            {
                success = cc.addBug(bugTypeID,TEXTAREABugDescription.Value,projectID,1,null);
                       
                NewBugMail bugmail = new NewBugMail(LabelName.Text,DropDownListChooseProject.SelectedValue,TEXTAREABugDescription.Value);
                   
            }
            else
            {               
                FileInfo fi = new FileInfo(filename);
                fs = fi.OpenRead();               
                BinaryReader br = new BinaryReader (fs);               
               
                long attLength = fi.Length;
                       
                byte [][] att = new byte [1][];
                att [0] = br.ReadBytes((int)attLength);

                success = cc.addBug(bugTypeID,TEXTAREABugDescription.Value,projectID,1,att);
            }
               
               
               
               
                setTEXTAREA();
                FileNotFoundLabel.Text = "";
                           

            }
            catch (FileNotFoundException)
            {
                FileNotFoundLabel.Text = "The specified file was not found on your computer.";
            }
            catch (DirectoryNotFoundException)//bliver kastet hvis der tilføjes en fil fra et virtuelt drev
            {               
                FileNotFoundLabel.Text = "The file was not found. If you tried to attach a file from a vituel path, please copy the file to your c drive, and attach again.";
            }
            catch(UnauthorizedAccessException)
            {
                FileNotFoundLabel.Text = "The file could not be attached. Are you authorized to open this file?";
            }
            finally
            {
                if(fs!=null)
                    fs.Close();
            }

            if (success)
            {
                LabelSuccessMessage.Text = "Thank you. The bug has been successfully reported.";               
                setTEXTAREA();//vist ikke nødvendig?test..
            }
            else
            {
                LabelSuccessMessage.Text = "Sorry, the bug was not reported.";
            }

           
                                   
        }//end method
Avatar billede linebille Nybegynder
17. marts 2004 - 13:47 #3
har i desperation prøvet at lave knappen om til en HtmlControls.HtmlInputButton med samme resultat. hva søren kan man gøre..
Avatar billede burningice Nybegynder
17. marts 2004 - 13:49 #4
linebille>> er det når du har klikket på knappen en gang, og så refresher siden med F5, at dens click-event bliver udført igen?
Avatar billede linebille Nybegynder
17. marts 2004 - 13:53 #5
ja det er - dvs jeg får en meddelelse 'at siden kan ikke opdateres uden at sende oplysningerne igen..så trykker jeg 'ok' og så bliver click-event'en udført igen. har prøvet lidt forskelligt for at få "clearet" knappen, men kan ikke finde nogen metoder til dette - og ved ikke om det er det rigtige at gøre?
Avatar billede mmp Nybegynder
17. marts 2004 - 14:03 #6
Hvis knappens hændelse kun må "køres" en gang på serveren ved Load, så kan du hindre at den kører igen ved at pakke koden ind i if(!IsPostBack){.....minKnap_Click hændelseskode...}
Avatar billede linebille Nybegynder
17. marts 2004 - 14:06 #7
ja men den skal køres hver gang der bliver trykket på den.
Avatar billede burningice Nybegynder
17. marts 2004 - 14:44 #8
du er ikke den første der er irreteret over det.. men hvis man sætter sig ind i hvordan at asp.net og postback er bygget op, så giver det hele lidt mere mening

prøv at se: http://www.eksperten.dk/spm/476569
Avatar billede jaffafo Nybegynder
17. marts 2004 - 14:51 #9
linebille:

Gør som cyberfessor har svaret i det link han har smidt..  det løset det så godt som det nu engang kan løses.. :)
Avatar billede linebille Nybegynder
17. marts 2004 - 14:52 #10
tak
men kan det virkli passe..er der ikke en anden udvej, end at kalde Response.Redirect() i metoden?
Avatar billede jaffafo Nybegynder
17. marts 2004 - 14:56 #11
Muligvis eksisterer der en eller anden funktion der løser problemet, men den kender jeg hvertfald ikke...
Avatar billede linebille Nybegynder
17. marts 2004 - 14:58 #12
cyberfessor du sku jo ha nogen point - det var en stor hjælp, så post et svar :-)
Avatar billede burningice Nybegynder
17. marts 2004 - 18:01 #13
svar :)
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