我有一个带有“提交”按钮的ASP.NET页面。当我单击按钮时,我的代码会运行,然后页面重新加载/刷新....整个页面都会被回发。
我必须使用或做什么来阻止页面重新加载? AJAX?怎么会这样做?
代码示例会很棒!
答案 0 :(得分:3)
案例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>
案例2没有AJAX
以下案例也会更新日期,但由于缺少Update Panel
,此时间页面将完全刷新
&lt;%@ Page Language =“C#”AutoEventWireup =“true”CodeFile =“Default4.aspx.cs”Inherits =“Default4”%&gt;
<!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>
希望本文能帮助您理解快速基础知识
答案 1 :(得分:2)
如果您不想重新加载页面,则应该查看UpdatePanel控件:http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx
答案 2 :(得分:1)
如果您想避免再次运行代码 你可以在page_load事件中做到
If(!page.IsPostBack())
{
your code here
}
和ajax以避免在jquery中重新加载 with the example here
或使用asp ajax面板