【问题标题】:Can I call an event method of a parent from within an UpdatePanel on a UserControl?我可以从 UserControl 上的 UpdatePanel 中调用父级的事件方法吗?
【发布时间】:2025-12-26 01:40:16
【问题描述】:

我需要实现以下场景。

我有一个带有记录列表的GridView。当用户选择记录时,浏览器中会出现一个弹出屏幕,显示记录的内容。内容从UserControl 呈现,在UserControl 中有一个UpdatePanel,用于在操作和保存数据时加载/重新加载数据。

我需要发生的是,在我的UserControl 上每次保存后,父页面上的GridView 需要刷新,以反映弹出编辑器控件中显示的记录的任何更改。

我的计划是在我的UserControl 上设置一个父页面也会订阅的事件。当从UserControl 中执行保存操作时,它将调用该事件,并且父页面应自行更新。

但是,由于UserControlUpdatePanel 内运行,并且只进行部分回发,我怀疑我的事件将无法正常工作。

这应该像我希望的那样工作,还是我需要找到另一种方法来告诉我的父页面在保存记录后刷新主页面GridView

如果我需要以不同的方式调用更新,这种情况的最佳方法是什么?我问是因为我不想构建一些复杂的保存/更新操作,只是为了发现我做了一些错误假设并且需要重新编码整个更新和重新加载过程。

【问题讨论】:

    标签: c# asp.net gridview user-controls updatepanel


    【解决方案1】:

    我之前已经这样做了,因为我已经有一段时间没有使用 Web 表单了,我只是不记得具体是怎么做的了。你有正确的想法。该事件将在父页面上引发,但之后您必须执行另一个 PostBack/Partial PostBack 才能从父页面上的事件处理程序更新网格。此外,您还必须确保已正确设置 UpdatePanel 上的属性。

    另一个选项是在您关闭 PopUp 时执行完整回发。如果弹出窗口足够大以至于它阻止用户看到网格,那么在关闭模式而不是保存数据时是否更新网格上的记录都不会产生影响。

    【讨论】:

      最近更新 更多