2013-03-28 18 views
6

Ich habe zwei Tasten, Vorschau und Speichern. Mit Hilfe der Vorschau-Schaltfläche kann der Benutzer die Daten basierend auf dem Format anzeigen und speichern.Wie kann Page_Load() beim Klicken auf die Schaltfläche vermieden werden?

Wenn jedoch auf die Vorschau geklickt wird, wird eine mit ajaxcontrol (Calender) verbundene Textbox leer und der Benutzer muss das Datum vor dem Speichern ausfüllen. Wie geht man damit um? Bei Vorschau klicken Sie auf die Details, um die Daten im Layout anzuzeigen.

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

Antwort

8

Von dem, was ich verstehe den Vorschauknopf ein Postback verursacht, und Sie wollen nicht, dass, versuchen Sie diese auf Ihrem Vorschau-Knopf:

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

ähnlich dies auch funktioniert:

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

Bearbeiten:

Es scheint die Antwort auf die Frage des Benutzers war eine einfache Änderung in der HTML-Mär k aus dem Vorschau-Knopf

CausesValidation="False" 
+0

klicken Post zurück Dies gilt nicht work.I bearbeitet meine Frage. Eigentlich auf Klick auf die Vorschau-Taste gehe ich auf der Server-Seite, um die Details aller Kontrolle zu bekommen und zeigen Sie dann anderes Layout. –

+4

versuchen CausesValidation = "False", Attribut auf Ihrem Vorschau-Button und lassen Sie mich wissen, wenn das funktioniert –

+0

Danke !!! Es löst das Problem. Einfache Lösung. :-) –

1

Versuchen Sie, dies zu den Schaltflächen Eigenschaften in der aspx Seite hinzuzufügen.

OnClientClick="return false;" 
12

Verwenden Page.IsPostBack() in der aspx-Code (Server-Seite). Wie folgt aus:

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

Dieser Code wird nur ausgeführt, die erste Mal, wenn die Seite geladen wird, und vermeidet Schritt auf vom Benutzer eingegebenen Änderungen an der Form.

3

Sie Ihren Code in

Page_Init() 
{ 
    //put your code here 
} 

setzen können statt

Page_Load() 
{ 
    //code 
} 
1

Ich hatte das gleiche Problem und die Lösung oberhalb von "Causes =" False "" und sogar das Hinzufügen "UseSubmitBehavior =" False "" funktionierte NICHT - es rief immer noch "Page_Load" -Methode.

Was für mich funktionierte, war die folgende Zeile in der Page_Load-Methode hinzuzufügen.

if (IsPostBack) return; 

ich dies zu erwähnen, wenn es jemand hilft (ich meinte oben zu kommentieren, aber Stackoverflow hat mir nicht erlauben, zu kommentieren, weil ich einen neuen Benutzer bin - also eine neue Antwort).

-1
form1.Action = Request.RawUrl; 

schreiben Sie diesen Code auf Seite Last dann wird diese Seite nicht auf Taste

Verwandte Themen