Asp.net
如何避免按鈕點擊時的 Page_Load()?
我有兩個按鈕,預覽和保存。借助預覽按鈕,使用者可以根據格式查看數據,然後可以保存。
但是當點擊預覽時,附加到 ajaxcontrol (Calender) 的一個文本框變為空,使用者必須在保存前填寫日期。如何處理?在預覽點擊我得到細節以顯示佈局中的數據。
<asp:TextBox ID="txtDate" ReadOnly="true" runat="server"></asp:TextBox> <div style="float: right;"> <asp:ImageButton ID="imgcalender1" runat="server" ImageUrl="~/images/calendar.png" ImageAlign="Bottom" /> <asp:CalendarExtender ID="ajCal" TargetControlID="txtpublishDate" PopupButtonID="imgcalender1" runat="server"> </asp:CalendarExtender> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ValidationGroup="group1" runat="server" ControlToValidate="txtDate" ForeColor="Red" Font-Bold="true" ErrorMessage="*"></asp:RequiredFieldValidator> </div> <asp:Button ID="btnPreview" runat="server" Text="Preview" OnClick="btnPreview_Click" /> <asp:Button ID="btnsubmit" runat="server" ValidationGroup="group1" Text="Save" OnClick="btnsubmit_Click" />
據我了解,預覽按鈕會導致回發,而您不希望這樣,請在預覽按鈕上嘗試此操作:
<asp:button runat="server".... OnClientClick="return false;" />同樣,這也有效:
YourButton.Attributes.Add("onclick", return false");編輯:
似乎使用者問題的答案是預覽按鈕的 HTML 標記的簡單更改
CausesValidation="False"
在您的 aspx 程式碼(伺服器端)中使用 Page.IsPostback()。像這樣:
private void Page_Load() { if (!IsPostBack) { // the code that only needs to run once goes here } }此程式碼僅在頁面第一次載入時執行,並避免踩到使用者輸入的表單更改。