ASP.NET AJAX不起作用

时间:2010-05-10 02:24:42

标签: asp.net ajax

我有一个非常简单的AJAX示例无效。 它来自Microsoft的AJAX教程。

当我点击按钮“Button1”时,AJAX应该执行,但整个页面都会提交。

以下是代码:

<%@ 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>

代码隐藏:

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();    
    }    
}

2 个答案:

答案 0 :(得分:2)

该代码适合我。 原因可能是您没有正确配置web.config文件。查看文件中的内容。

它需要一些组件来支持MS AJAX Extensions。

转到

http://www.asp.net/ajax/videos/how-do-i-add-aspnet-ajax-features-to-an-existing-web-application

看一下教程,看看是否有帮助。

答案 1 :(得分:1)

我认为你的误解是在Page_Load事件中,即使对于部分回发事件也会触发。您可以通过使任何初始化代码成为条件来处理它,如:

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