2010-06-21 21 views
1

我的Internet Explorer出現問題,當我刷新頁面的提交按鈕時,頁面也會執行,導致數據重複輸入。爲此,我必須糾正刷新頁面的代碼,在該頁面中,它會清除緩存和會話,或者它不會輸入上次會話值。如果頁面打開時間超過了分鐘,錯誤對象引用未設置爲實例

來自我實現了這個代碼,它給了我沒有設置爲一個實例

這裏

對象引用的時間是代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    try 
    { 
     Session["DdlValue"] = DdlfacilityInsfindCsu.SelectedValue; 
     if (!IsPostBack) 
     { 
      Session["CheckRefresh"] = Server.UrlDecode(System.DateTime.Now.ToString()); 
      GetDdl(); 
      GetDdlIn(); 
     } 
    } 
    catch (Exception ex) 
    { 
     lblmess.Text = ex.Message.ToString(); 
    } 
} 
protected void Page_PreRender(object sender, EventArgs e) 
{ 
    ViewState["CheckRefresh"] = Session["CheckRefresh"]; ---- This is for avoiding double entry on page refresh page . 
} 

protected void btnsubmitinsuranceentryCsu_Click(object sender, EventArgs e) 
{ 
    //if (Page.IsValid) 
    //{ 
     try 
     { 
      if (Session["CheckRefresh"].ToString() == ViewState["CheckRefresh"].ToString()) 
      { 
       InsertDataI(); 
       Session["CheckRefresh"] = Server.UrlDecode(System.DateTime.Now.ToString()); 
      } 
     } 
     catch (Exception ex) 
     { 
      lblmesss.Text = ex.Message.ToString(); 
     } 
    //}   
} 

誰能幫助我這個?

謝謝。

回答

1

您的會話可能已過期,因爲它不再存在,所以會給您一個NULL值。在Web.config中延長會話超時時間。

+0

謝謝tommy .... – SmartDev 2010-06-21 20:13:49

0

您正在使用的解決方案是一個黑客真的。

...我曾與我的Internet Explorer的一個問題,當我刷新頁面提交按鈕的頁面也將執行這是導致數據的複式...

不該」你調查了提交兩次的原因嗎?

使用會話和viewstate變量來解決一個可能更大的問題,即您的INSERT或存儲過程應該在嘗試另一個INSERT之前檢查重複項。

但更重要的是,爲什麼瀏覽器會觸發另一個提交?這可能是你的緩存沒有被清除,或者你可能以一種奇怪的方式調用了SUBMIT。

在使用Session []變量來隱藏真正的問題之前,我會先調查這些事情。

相關問題