簡體   English   中英

ASP.NET AJAX不起作用

[英]ASP.NET AJAX Doesnt Work

我有一個不起作用的非常簡單的AJAX示例。 它來自有關AJAX的Microsoft教程。

當我單擊按鈕“ 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();    
    }    
}

該代碼對我有用。 原因可能是您沒有正確配置web.config文件。 查看文件中的內容。

它需要一些組件來支持MS AJAX擴展。

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

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

我認為您的誤解是在Page_Load事件中,即使發生了部分回發,該事件也會一直觸發。 您可以通過將任何初始化代碼作為條件來處理此問題,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM