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

4
我有一个带有提交按钮的ASP.NET页面。当我点击按钮时,我的代码会运行,然后页面重新加载/刷新....整个页面都会被重新提交。
为了防止页面重新加载,我应该使用什么或做什么? AJAX?如何实现?
提供代码示例将是很棒的!

2
请查看此链接,了解有关Ajax更新面板的信息:http://ajax.net-tutorials.com/controls/updatepanel-control/ - Glory Raj
3个回答

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>

没有 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>

希望本文能帮助您快速了解基础知识。

2

1
如果你想避免代码再次运行,你可以在页面加载事件中实现。
If(!page.IsPostBack())
{
  your code here
}

使用jQuery中的ajax来避免重新加载页面 这里有一个示例

或者使用ASP Ajax面板


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接