c# - 从不同的代码隐藏更改 ascx 内容

标签 c# javascript asp.net .net webforms

假设我有 tvo 页面 page1.ascx 和 page2.ascx。两个页面都有代码隐藏(分别为 page1.ascx.cs 和 page2.ascx.cs)。

因此 page1 和 page2 在浏览器中同时并排呈现。

现在 page1.ascx 有一个 ListView 并且它的代码隐藏有一个填充它的方法(PopulateListbox())。如何从 page2.ascx 代码隐藏中调用 PopulateListbox()?

page1 p1 = new page1();
p1.PopulateListbox(); 

...不起作用,findController 查找列表框的 ID 返回空值。

任何指导都会有很大帮助,谢谢。

最佳答案

var p1 = this.Page.FindControl("page1Id") as page1;
if (p1 != null)
   p1.PopulateListbox();

不过,您可以用不同的方式来做到这一点。在第一个控件上为特定操作创建事件。在父页面中添加一个事件处理程序,该事件处理程序将包含以下调用

p1.PopulateListbox();

Here有关如何创建您自己的事件的链接

关于c# - 从不同的代码隐藏更改 ascx 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330683/

相关文章:

javascript - 单击菜单内的链接后如何将汉堡包菜单图标重置为未打开状态?

c# - EF Core 和大流量导致达到最大池大小错误

c# - 根据本地日光设置调整 DB 的显示日期

c# - 并行处理许多 HTTP Web 请求的好方法是什么?

c# - 在单个扩展方法中正确开始和结束调用

javascript - Google 自动加载 map Adsense 库

c# - 从流中读取 excel 文件

c# - C# 窗体上的 OpenGL View

c# - 如何替换 .NET 中字符串的*第一个实例*?

javascript - 使用 d3 force layout 在 svg rect 中添加节点