2010-05-10 6 views
0

J'ai un exemple AJAX très simple qui ne fonctionne pas. Il est issu des tutoriels Microsoft sur AJAX.ASP.NET AJAX ne fonctionne pas

Lorsque je clique sur le bouton "Button1" AJAX doit s'exécuter mais la page entière est soumise.

Voici le code:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="1111.aspx.cs" Inherits="_1111" %> 
<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.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></title> 
</head>  
<body>  
    <form id="form1" runat="server">  
    <p>  
    DropDownList AutoPostBack SelectedIndexChanged EventArgs Sort ... Since you will  
    be using AJAX to process your SelectedIndexChanged event, set the AutoPostBack property  
    of the DropDownList to false. ...</p>  
    <div>  

    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">  
    </asp:ScriptManager>  
    <asp:Label ID="label2" runat="server"></asp:Label><br /> 
    <asp:Label ID="label3" runat="server"></asp:Label><br />  
    <center>  
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">  
     <ContentTemplate>  
     <asp:Label ID="label1" runat="server"></asp:Label>  
     <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button 1" />  
     </ContentTemplate>  
     <Triggers>  
     <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />  
     </Triggers>  
    </asp:UpdatePanel> 
    </center>  
    </div>  
    </form>  
</body>  
</html> 

code-behind:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  

public partial class _1111 : System.Web.UI.Page  
{  
    protected void Page_Load(object sender, EventArgs e) 
    {  
     label1.Text = System.DateTime.Now.ToString();  
     label2.Text = System.DateTime.Now.ToString();  
     label3.Text = System.DateTime.Now.ToString();  
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    {  
     label1.Text = System.DateTime.Now.ToString();  
    }  
} 
+3

Ne voulant pas être un type nazi de langue nitpicky, mais votre titre est très mauvais. Asp.Net AJAX fonctionne très bien, car des millions de développeurs s'en servent quotidiennement. Plus spécifiquement, votre installation de ASP.net AJAX ne fonctionne pas, mais même cela peut être faux, car il peut s'agir d'un serveur mal configuré, d'une erreur de codage, d'un navigateur avec script désactivé ou de tout autre problème à l'origine du problème. Un * beaucoup * meilleur titre aurait été, "le code ASP.NET AJAX est toujours à l'origine de la publication complète" par exemple. – Serapth

+0

Avez-vous une erreur javascript de quelque sorte? –

+0

a collé votre code dans un projet ajax asp.net dans VS2008 et il fait des rappels pas des postbacks, c'est-à-dire fonctionne comme prévu –

Répondre

1

Je pense que votre malentendu est l'événement Page_Load, qui sera toujours le feu, même pour les post-dos partiel. Vous pouvez gérer cela en conditionnant n'importe quel code d'initialisation, comme dans:

if (!IsPostBack) { 
    label1.Text = System.DateTime.Now.ToString();  
    label2.Text = System.DateTime.Now.ToString();  
    label3.Text = System.DateTime.Now.ToString();  
}