2013-03-28 142 views
6

我有兩個按鈕,預覽和保存。藉助預覽按鈕,用戶可以根據格式查看數據,然後保存。如何避免按鈕點擊Page_Load()?

但是當單擊預覽時,附加到ajaxcontrol(日曆)的一個文本框變爲空,用戶必須在保存前填寫日期。如何處理這個?在預覽點擊我得到的細節顯示佈局中的數據。

<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" /> 

回答

8

從我所瞭解的預覽按鈕導致回發,你不希望出現這種情況,試試這個在您的預覽按鈕:

<asp:button runat="server".... OnClientClick="return false;" /> 

同樣這也適用:

YourButton.Attributes.Add("onclick", return false"); 

編輯:

似乎用戶的問題的答案是簡單的變化在HTML mar K預覽按鈕

CausesValidation="False" 
+0

這不幹活編輯我的問題。其實,點擊預覽按鈕,我會在服務器端獲取所有控件的詳細信息,然後顯示不同的佈局。 –

+4

嘗試CausesValidation =「False」,預覽按鈕上的屬性,並讓我知道,如果這樣的作品 –

+0

謝謝!它確實解決了這個問題。解決方案簡單:-) –

1

嘗試將其添加到aspx頁面中的按鈕屬性。

OnClientClick="return false;" 
12

在您的aspx代碼(服務器端)中使用Page.IsPostback()。就像這樣:

private void Page_Load() 
{ 
    if (!IsPostBack) 
    { 
     // the code that only needs to run once goes here 
    } 
} 

此代碼將只運行第一一次加載頁面,並避免踩着用戶輸入到表格的變化。

3

你可以把你的代碼

Page_Init() 
{ 
    //put your code here 
} 

,而不是

Page_Load() 
{ 
    //code 
} 
1

我有同樣的問題,上述的解決方案「的CausesValidation =」假「」,甚至將「UseSubmitBehavior =」假「」不工作 - 它仍然稱爲「Page_Load」方法。

對我來說最有效的是在Page_Load方法中加入了下面的代碼。

if (IsPostBack) return; 

我提這個,如果它可以幫助別人(我的意思是上面發表評論,但StackOverflow上並沒有讓我評論,因爲我是一個新用戶 - 因此一個新的回覆)。

-1
form1.Action = Request.RawUrl; 

寫在頁面加載此代碼,然後頁面不回發按鈕點擊