2013-03-08 83 views
0

我有一個asp.net複選框,並在更新面板中將autopostback設置爲true。當我檢查複選框時,它顯示我想要顯示的其他控件。當我取消選中複選框時,數據庫中的值會更新。這一切工作正常。更新面板中的ASP.Net複選框

如果我想在取消選中該複選框後移動到另一個頁面,則會顯示一個對話框,詢問我是想留在該頁面還是離開頁面。我怎樣才能阻止該對話框出現?

<asp:UpdatePanel runat="server" ID="upOnProbation" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <div> 
       <table> 
        <tr> 
         <td> 
          <asp:CheckBox runat="server" Text="On Probation" ID="chkOnProbation" AutoPostBack="true" ClientIDMode="AutoID" /> 
         </td> 
        </tr> 
        <asp:PlaceHolder runat="server" ID="plcProbabtionDates" Visible="false"> 
         <tr> 
          <td> 
           Start date 
          </td> 
          <td> 
           <ComponentArt:Calendar runat="server" ID="dtStart" ControlType="Picker" PickerFormat="Short"> 
           </ComponentArt:Calendar> 
          </td> 
         </tr> 
         <tr> 
          <td> 
           End date 
          </td> 
          <td> 
           <ComponentArt:Calendar runat="server" ID="dtEnd" ControlType="Picker" PickerFormat="Short"> 
           </ComponentArt:Calendar> 
          </td> 
         </tr> 
         <tr> 
         <td> 
          <asp:Button runat="server" ID="btnSave" Text="Save" CssClass="btn" /> 
         </td> 
        </tr> 
        </asp:PlaceHolder>     
       </table> 
      </div> 
     </ContentTemplate> 

    </asp:UpdatePanel> 




Protected Sub chkOnProbation_CheckedChanged(sender As Object, e As System.EventArgs) Handles chkOnProbation.CheckedChanged 
     If chkOnProbation.Checked Then 
      plcProbabtionDates.Visible = True 
      dtStart.SelectedDate = DateTime.Now 
      dtEnd.SelectedDate = DateTime.Now.AddMonths(6) 
     Else 
      plcProbabtionDates.Visible = False 
      objCompany.On_Probation = False 
      objCompany.Save(UserStaffID) 
     End If 
    End Sub 

回答

0

Check this previous answer解釋爲什麼發生這種情況。

基本上,當您在網頁上有表單時,瀏覽器會爲您觸發onbeeforeunload事件,以確保未保存的更改得到解決。

回答前面的問題指出,你可以通過設置處理避免這null

window.onbeforeunload = null;