c# - 如何将数据从 aspx 页面传递到 ascx 模式弹出窗口?

标签 c# asp.net asp.net-ajax

我是 ASP.NET 的新手,正在尝试了解其工作原理。我来自 C# 背景,所以代码隐藏部分很简单,但像 Web 开发人员一样思考是不熟悉的。

我有一个包含复选框网格的 aspx 页面。我有一个按钮,该按钮通过 Button_Click 事件进行编码,以收集检查了哪些行的列表,并从该列表中创建一个 session 变量。我的 ascx 页面的 ModalPopupExtender 引用了相同的按钮(通过 TargetControlID),它控制 ascx 页面上的面板。

单击按钮时,模式弹出窗口打开,但 Button_Click 事件永远不会触发,因此模式不会获取其 session 数据。

由于这两个页面是分开的,我无法从 aspx.cs 代码中调用 ModalPopupExtender,我无法从 ascx.cs 代码中访问复选框列表,而且我没有看到填充方法我的 session 变量,然后以编程方式激活一些其他隐藏的按钮或控件,然后将打开我的模式弹出窗口。

有什么想法吗?

最佳答案

所有用户控件 (.ascx) 文件都是一组控件,您将它们组合在一起以提供一些可重用的功能。在页面生命周期中,其中定义的控件仍会添加到页面的控件集合 (.aspx) 中。 ModalPopupExtender 使用 javascript 和 dhtml 来显示和隐藏用户控件客户端中的控件。您看到的是单击事件由 ModalPoupExtender 在客户端处理,并且正在取消回传到服务器。这是设计的默认行为。您当然可以从用户控件的代码隐藏访问页面的控件集合,因为它都是同一控件树的一部分。只需使用任何控件的 FindControl(xxx) 方法来搜索您需要的子控件。

关于c# - 如何将数据从 aspx 页面传递到 ascx 模式弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12671/

相关文章:

c# - 上标标签或表格名称

c# - 在从 C++ 转换为 C# 的代码中,我应该使用什么来代替 memcpy?

c# - 在 C# 中裁剪图像

java - 无法使用 JSoup 登录到 IIS 登录提示

c# - System.Globalization.CultureInfo 不包含 Name 的定义

asp.net-ajax - 找不到ScriptResource.axd 404

javascript - 将隐藏字段从 Iframe 获取到容器页面

c# - 在运行时加载程序集

c# - ASP.NET Ajax UpdatePanel 闪烁

c# - Asp.net 是否可以检查 page_load 是否触发了点击事件?