Bonjour
dans le cadre d'un site ASP.NEt j'utilise de l'ajax pour éviter de recharger l'ensemble de la page.
Selon le tutoriel d'asp.net, il est bien écrit
If you were to look at the rendered source of the page after clicking the button, it will confirm that in fact a post-back has not occurred
Or lors de différents tests sur mes pages, à chaque fois j'ai des post-backs
Je me suis dit que je m'étais planté dans mes pages et j'ai fait une page de test, dont voici le code source
Et le code behind :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <div> <h4> Default policy </h4> Please select the default policy : <asp:DropDownList ID="ddlPolicy" runat="server"> </asp:DropDownList> <br /> <br /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate> <asp:HiddenField id="hiddenLastDefaultPolicy" runat="server" Value="0"> </asp:HiddenField> <asp:Label id="lblErrorDefault" runat="server" ForeColor="Red" Text="Default policy not selected"> </asp:Label> <BR /> <asp:Label id="lblresult" runat="server" ForeColor="RoyalBlue" Font-Bold="True" Visible="False"> Set the default policy successfully</asp:Label> <BR /> <BR /> <asp:Button id="btnDefineDefault" onclick="btnDefineDefault_Click" runat="server" Text="Set default" CauseValidation="false"></asp:Button> </ContentTemplate> </asp:UpdatePanel> </div> </form> </body> </html>
Hors quand je lance ce petit exemple, je mets un breakpoint sur le PageLoad et un sur ma fonction btnDefineDefault_Click et je me rends compte que malgré 'AJAX', le page_load est quand même appelé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //.... initialisation de la ddl ddlPolicy.DataBind(); } } protected void btnDefineDefault_Click(object sender, EventArgs e) { int defaultPolicy = Convert.ToInt32(ddlPolicy.SelectedValue); //.... set default }
Alors est ce une erreur de ma part dans la conception de la page?
ou est ce que j'ai rien compris à l'ajax et qu'il y a quand même un appel au pageLoad mais dans ce cas la, pourrait on m'expliquer l'utilité de l'ajax car ca se ressemble bcp a un 'postback'??
Merci de vos explications.
Partager