C# 从updatepanel中刷新整个页面

C# 从updatepanel中刷新整个页面,c#,asp.net,C#,Asp.net,这是我的情况。我有一个web表单页面,每次单击控件时整个页面都会滚动到顶部,这让人很恼火,所以我尝试将更新面板应用到我的页面 根据各个更新面板的内容是否处于正确状态,submit按钮可以单击,也可以不单击 单击“提交”按钮时,可能会影响页面上的任何控件 我知道我可以使用更新面板的标记元素来完成一些操作,但我不想把页面上的所有内容都放在一个有自己触发器的更新面板中,我宁愿“提交”按钮只重新加载整个页面 为了简单起见,我放了一个示例项目来表示我的页面。它有一个“重置”按钮,代表“提交”按钮 母版页:

这是我的情况。我有一个web表单页面,每次单击控件时整个页面都会滚动到顶部,这让人很恼火,所以我尝试将更新面板应用到我的页面

根据各个更新面板的内容是否处于正确状态,submit按钮可以单击,也可以不单击

单击“提交”按钮时,可能会影响页面上的任何控件

我知道我可以使用更新面板的
标记元素来完成一些操作,但我不想把页面上的所有内容都放在一个有自己触发器的更新面板中,我宁愿“提交”按钮只重新加载整个页面

为了简单起见,我放了一个示例项目来表示我的页面。它有一个“重置”按钮,代表“提交”按钮

母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication1.SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form runat="server">
    <asp:ScriptManager ID="ScriptManager" runat="server" EnablePartialRendering="true"  />

    <div class="page">
        <div class="header">
            <div class="title">
                <h1>
                    My ASP.NET Application
                </h1>
            </div>
            <div class="loginDisplay">
                <asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
                    <AnonymousTemplate>
                        [ <a href="~/Account/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]
                    </AnonymousTemplate>
                    <LoggedInTemplate>
                        Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
                        [ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/"/> ]
                    </LoggedInTemplate>
                </asp:LoginView>
            </div>
            <div class="clear hideSkiplink">
                <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                    <Items>
                        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
                        <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
                    </Items>
                </asp:Menu>
            </div>
        </div>
        <div class="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
        </div>
        <div class="clear">
        </div>
    </div>
    <div class="footer">

    </div>
    </form>
</body>
</html>

只需在最后一个UpdatePanel中添加一个PostBackTrigger

<asp:PostBackTrigger ControlID="reset" />

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_click(object sender, EventArgs e)
        {
            textBox1.Enabled = !textBox1.Enabled;
            reset.Enabled = !textBox1.Enabled && !textBox2.Enabled;
        }

        protected void Button2_click(object sender, EventArgs e)
        {
            textBox2.Enabled = !textBox2.Enabled;
            reset.Enabled = !textBox1.Enabled && !textBox2.Enabled;
        }

        protected void Reset_click(object sender, EventArgs e)
        {
            textBox1.Text = "StartText";
            textBox2.Text = "StartText";
            label1.Text = "reset button clicked";
        }
    }
}
<asp:PostBackTrigger ControlID="reset" />