ASP.NET AJAX не работает - PullRequest
       7

ASP.NET AJAX не работает

0 голосов
/ 10 мая 2010

У меня есть очень простой пример 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 ]

2 голосов
/ 10 мая 2010

Код работает для меня. Возможно, причина в том, что вы неправильно настраиваете файл web.config. Посмотрите, что находится внутри вашего файла.

Для поддержки расширений MS AJAX необходимы некоторые компоненты.

Перейти к

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

Посмотрите учебник, чтобы увидеть, поможет ли это.

1 голос
/ 10 мая 2010

Я думаю, ваше недоразумение связано с событием Page_Load, которое всегда срабатывает даже для частичных постбэков. Вы можете справиться с этим, сделав любой код инициализации условным, например:

if (!IsPostBack) {
    label1.Text = System.DateTime.Now.ToString();    
    label2.Text = System.DateTime.Now.ToString();    
    label3.Text = System.DateTime.Now.ToString();    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...