我有一个带有提交按钮的ASP.NET页面。当我点击按钮时,我的代码会运行,然后页面重新加载/刷新....整个页面都会被重新提交。
为了防止页面重新加载,我应该使用什么或做什么? AJAX?如何实现?
提供代码示例将是很棒的!
为了防止页面重新加载,我应该使用什么或做什么? AJAX?如何实现?
提供代码示例将是很棒的!
情况 1:使用 AJAX
在这里,我们添加了以下控件:
1. Script Manager
2. Ajax Update Panel with Trigger and Content Template
3. Button
在这种情况下,您会注意到,在单击按钮时,位于Update Panel
之外的控件将不会被更新。这意味着在单击按钮时,Update Panel
内部的控件将被更新。这意味着完整页面不会被刷新。我希望这满足您的要求....
输出
位于更新面板之外的日期不会被更新,而更新面板内部的日期只会被更新,因为它们位于更新面板内部,所以整个页面不会被刷新。
源代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>
<!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">
<div>
<%=DateTime.Now %>
<br />
<asp:ScriptManager ID="scr" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="Upd" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<%=DateTime.Now %>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btn" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="btn" runat="server" Text="Click Me" />
</div>
</form>
</body>
</html>
没有 AJAX 的情况
下面的情况也会更新日期,但是由于缺少 Update Panel
,这次页面将完全刷新。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>
<!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">
<div>
<%=DateTime.Now %>
<asp:Button ID="btn" runat="server" Text="Click Me" />
</div>
</form>
</body>
</html>
If(!page.IsPostBack())
{
your code here
}
使用jQuery中的ajax来避免重新加载页面 这里有一个示例
或者使用ASP Ajax面板