2016-05-26 7 views
0

Ich füge einige Inhalte in Datenbank auf Knopfklick-Ereignis ein, alles funktioniert gut während der Einfügung der Daten.Zeilen, die so oft wie Seitenaktualisierungen hinzugefügt werden

Das Problem ist, ich habe gerade die Seite nach dem Klick aktualisiert, dann habe ich festgestellt, dass nach dem Klick auf die Schaltfläche Daten so viel Zeit einfügen, wie ich die Seite aktualisiert.

Wie kann ich das stoppen? Hier ist mein Button-Code:

protected void btn_AddEdu_Click(object sender, EventArgs e) 
    { 
     hfTab.Value = "edu"; 
     if (ValidateAddEdu()) 
     { 
      emp_edu.InsertEdu(Session["empcd"].ToString(), ddl_degree.SelectedValue.ToString(), txt_eduterms.Text, ddl_institute.SelectedValue.ToString(), txt_edupassyear.Text, txt_edugrade.Text, ddl_sponsor.SelectedValue.ToString()); 
      int imagefilelength = fileupload_edu.PostedFile.ContentLength; 
      byte[] imgarray = new byte[imagefilelength]; 
      HttpPostedFile image = fileupload_edu.PostedFile; 
      image.InputStream.Read(imgarray, 0, imagefilelength); 
      edu_attach.InsertEduAttachment(Session["empcd"].ToString(),ddl_degree.SelectedValue.ToString(),imgarray); 
      lbl_eduerr.Text = "Added"; 
      lbl_eduerr.ForeColor = System.Drawing.Color.Green; 
      BindEduGrid(); 

     } 
    } 
+0

Hat Ihr Browser Sie nicht gewarnt, dass, wenn Sie die Seite aktualisieren, Sie gehen eine POST senden nochmal? – CodeCaster

+0

Nein, es warnt mich nicht. Aber wenn es warnt, und der Benutzer es bestätigt, wird die Zeile zweimal eingefügt. Kann ich damit aufhören? –

+0

Versuchen Sie, Ihren Code in 'if (! Page.IsPostBack) {}' in der Schaltfläche klicken Sie auf – Ansari

Antwort

0

In folgenden Code in Ihre Seite CS-

protected void Page_Load(object sender, EventArgs e) 
{ 
      if (!Page.IsPostBack) 
      { 
       Session["CheckRefresh"] = Server.UrlDecode(System.DateTime.Now.ToString()); 
      } 
} 


protected void Page_PreRender(object sender, EventArgs e) 
{ 
     ViewState["CheckRefresh"] = Session["CheckRefresh"];  
} 


protected void btn_AddEdu_Click(object sender, EventArgs e) 
{ 
    if (Session["CheckRefresh"].ToString() == ViewState["CheckRefresh"].ToString()) 
    { 
    hfTab.Value = "edu"; 
    if (ValidateAddEdu()) 
    { 
     emp_edu.InsertEdu(Session["empcd"].ToString(), ddl_degree.SelectedValue.ToString(), txt_eduterms.Text, ddl_institute.SelectedValue.ToString(), txt_edupassyear.Text, txt_edugrade.Text, ddl_sponsor.SelectedValue.ToString()); 
     int imagefilelength = fileupload_edu.PostedFile.ContentLength; 
     byte[] imgarray = new byte[imagefilelength]; 
     HttpPostedFile image = fileupload_edu.PostedFile; 
     image.InputStream.Read(imgarray, 0, imagefilelength); 
     edu_attach.InsertEduAttachment(Session["empcd"].ToString(),ddl_degree.SelectedValue.ToString(),imgarray); 
     lbl_eduerr.Text = "Added"; 
     //Add this line 
     Session["CheckRefresh"] = Server.UrlDecode(System.DateTime.Now.ToString()); 
     lbl_eduerr.ForeColor = System.Drawing.Color.Green; 
     BindEduGrid(); 

    } 
    } 
} 
+0

Dank es funktioniert :) –

Verwandte Themen