gpt4 book ai didi

c# - UpdatePanel 不会阻止按钮重新加载页面

转载 作者:行者123 更新时间:2023-11-30 21:48:01 28 4
gpt4 key购买 nike

我只是想做空 this question's example通过制作一个简短的原型(prototype)来测试 UpdatePanel 功能,以禁用单击链接按钮时重新加载 ASP.NET 页面。我在像this这样的问题中看到过这种方法。 。为了测试这一点,我创建了一个新的 ASP.NET WebForms 应用程序,添加了一个 ASP LinkBut​​ton,周围有一个 UpdatePanel。我在 Visual Studio .cs 文件中的 OnClick 和 PageLoad 事件上添加了断点。这是 ASP 文件中的代码:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:LinkButton ID="LinkButton1" OnClick="OnLinkClick" runat="server">Click me, no reload, I promise!</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>

以及.cs文件代码:

    protected void Page_Load(object sender, EventArgs e)
{
//page reload things...
}

protected void OnLinkClick(object sender, EventArgs e)
{
//on click thigs...
}

发生的情况是,每次我单击 LinkBut​​ton 时,触发的第一个断点是 PageLoad 断点,然后是 OnClick 断点。我认为使用 UpdatePanel 可以避免这种行为。

我做错了什么,或者为什么我不应该期望 PageLoad 不会被调用?这是测试 LinkBut​​ton 单击是否重新加载页面的好方法吗?

最佳答案

正如 Clint B 所提到的,代码隐藏中回发事件的处理是正常的。您可以使用两个标签来测试 UpdatePanel,一个在 UpdatePanel 内部,一个在 UpdatePanel 外部:

<asp:Label ID="lbl1" runat="server" Text="Label 1" BackColor="Aqua" />
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:Label ID="lbl2" runat="server" Text="Label 2" BackColor="Yellow" />
<asp:LinkButton ID="LinkButton1" runat="server" Text="Update, no reload!" OnClick="OnLinkClick" />
</ContentTemplate>
</asp:UpdatePanel>

LinkBut​​ton 的事件处理程序更新两个标签:

protected void OnLinkClick(object sender, EventArgs e)
{
lbl1.Text = DateTime.Now.ToString();
lbl2.Text = DateTime.Now.ToString();
}

如果部分刷新有效,则对 lbl2 所做的更改将在页面中可见,而 lbl1 仍显示其原始文本。

关于c# - UpdatePanel 不会阻止按钮重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37997032/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com