ASP.NET页面不应该在提交时回发整个页面

时间:2012-02-17 19:37:58

标签: c# asp.net ajax vb.net

我有一个带有“提交”按钮的ASP.NET页面。当我单击按钮时,我的代码会运行,然后页面重新加载/刷新....整个页面都会被回发。

我必须使用或做什么来阻止页面重新加载? AJAX?怎么会这样做?

代码示例会很棒!

3 个答案:

答案 0 :(得分:3)

使用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>

案例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面板