访问动态创建的控件 (c#)

2024-05-28

在我的代码后面(c#)中,我动态创建了一些RadioButtonList,每个RadioButton中有更多RadioButton。我将所有控件放在一个特定的面板中。 我需要知道的是稍后如何访问这些控件,因为它们不是在 .aspx 文件中创建的(通过从工具箱拖放)?

我试过这个:

    foreach (Control child in panel.Controls)
    {
        Response.Write("test1");
        if (child.GetType().ToString().Equals("System.Web.UI.WebControls.RadioButtonList"))
        {
            RadioButtonList r = (RadioButtonList)child;
            Response.Write("test2");
        }   
    }

“test1”和“test2”没有出现在我的页面中。这意味着这个逻辑有问题。 有什么建议我可以做什么吗?


每次回发后您都必须重新创建控件。

ASP.NET 是无状态的,也就是说,当您将页面回发到服务器时,动态创建的控件将不再是该页面的一部分。

上周我不得不再次克服这种情况。

我做了什么? 我保存了用于在 Session 对象内创建控件的数据。在页面加载方法中,我传递了相同的数据来创建动态控件。

我的建议是: 编写一个方法来创建动态控件。

在页面加载方法中检查它是否是回发...

if(Page.IsPostBack)
{
   // Recreate your controls here.
}

一件非常重要的事情:为动态创建的控件分配唯一的 ID,以便 ASP.NET 可以重新创建绑定其现有事件处理程序的控件、恢复其 ViewState 等。

myControl.ID = "myId";

我很难了解这东西是如何工作的。一旦你知道你手中就有权力。动态创建的控件开辟了一个充满可能性的新世界。

正如 Frank 提到的:您可以通过这种方式使用“is”关键字来方便您的生活......

if(child is RadioButtonList)


Note:值得一提的是ASP.NET 页面生命周期概述 http://msdn.microsoft.com/en-us/library/ms178472.aspxMSDN 页面以供进一步参考。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问动态创建的控件 (c#) 的相关文章

随机推荐

  • 寻找示例项目和“如何创建”VB6 Activex EXE

    我正在学习如何创建 VB6 Active X EXE 我需要为许多 VB6 应用程序添加 打电话回家 到服务器的功能 我想集中此功能 但不想使用 DLL 来实现 因为我只想需要防火墙权限one程序 phone home ActiveX EX
  • 将数字转换为英文字母列表

    我有下面的函数 它将数字输入转换为这些数字的部分翻译的单词输出 使用乘积和商 它将数字的单词表示相加 同时将数字分组 例如 number name 87969087 gt 87 million 969 thousand 87 number
  • UISearchDisplayController 显示父 UITableViewController 的标题部分

    I am facing strange issue with UITableViewController I display search result in UISearchDisplayController If I have some
  • FutureWarning:使用非元组序列进行多维索引

    我收到的警告是 C Users el Anaconda3 envs Py3 lib site packages scipy io matlab miobase py 414 FutureWarning 使用非元组序列进行多维 不推荐使用索引
  • Twitter 的 Bootstrap 弹出窗口不起作用

    我正在使用 Bootstrap 的 popover 插件 link http twitter github com bootstrap javascript html twipsy 但它不起作用 HTML a class danger hr
  • 是否有 apache.commons.collections.CollectionUtils 的可行的通用替代方案?

    是否有可行的通用版本org apache commons collections CollectionUtils 如果没有 为什么不呢 这似乎是一个显而易见的需求 或者 Java 社区是否已经放弃了函数式编码 直到 Java 17 添加了闭
  • python 中的文件输出给我垃圾

    当我编写以下代码时 我得到的输出是垃圾 这只是一个寻找素数的简单程序 当第一个 for 循环范围仅达到 1000 时 它会起作用 但一旦范围变大 程序将无法输出有意义的数据 output open output dat w for i in
  • 找不到 Microsoft.SqlServer.ConnectionInfo.dll 程序集文件?

    我正在尝试仅使用 C 代码动态获取数据库表结构 如下所示 using Microsoft SqlServer Management Common using Microsoft SqlServer Management Smo public
  • Flutter 的 %1 安装错误不是有效的 win32 应用程序

    我是颤振的新手 并尝试通过以下步骤安装它 1 下载并解压到驱动器中 2 在环境变量中设置路径 现在我正在尝试运行 flutter doctor 它向我显示以下错误 请检查是否有人遇到同样的问题 谢谢 Flutter Channel beta
  • 有没有相当于 mkmapsnapshotter 的 Google 地图?

    我有一个UITableView其中可能包含大量单元格 并且在某些单元格中我想要一个UIImageView显示一个位置的地图 其坐标仅在运行时已知 我希望表格视图能够平滑滚动 并且我希望单元格中的地图根本不可滚动 我被指示避开苹果地图 除了
  • 如何在iOS中获得旋转UIView的完美X,Y位置

    我正在使用 CABasicanimation 来旋转 UIView 我正在使用这段代码 CABasicAnimation rotationAnimation CABasicAnimation animationWithKeyPath tra
  • 基本 2d 碰撞检测

    我可以在哪里阅读有关游戏或具有一定交互性的应用程序的基本 2D 碰撞检测的更多信息 编辑 Canvas 游戏的 javascript 怎么样 最重要的定理是分离轴定理 SAT 基本上 它允许您检测两个之间的碰撞convex多边形 好的阅读材
  • 使用 Entity Framework Core 2.0 更改或重命名列名称而不丢失数据

    我意识到我的一个列标题拼写错误 因此我在模型中更改了它并创建了一个新的迁移以将其更新到数据库中 一切都很完美 直到我意识到实际发生的情况是一个新列取代了现有列并删除了所有数据 碰巧的是 由于这是一个教程数据库 因此恢复数据并不重要 只需几分
  • 在 PyCharm 中更改文件类型

    我创建了一个文本文件 并将其重命名为 testTreeGen py 问题是 PyCharm 没有将其检测为 python 源 因此我无法执行它 我如何告诉 PyCharm 这是 python 脚本 我尝试删除该文件并重新创建它 然后创建另一
  • Android 操作栏 SearchView 作为自动完成功能?

    我在操作栏中使用 SearchView 我想在搜索视图上使用自动完成功能来从数据库中获取结果 这可能吗 或者我是否需要使用自定义文本框 然后添加自动完成功能 所以我只需要对 v7 版本执行此操作 并沮丧地发现我不能简单地使用 ArrayAd
  • JQuery UI 编码噩梦

    我希望能够将任何字符串传递给 JQuery UI 中的按钮文本 假设我有这个字符串 Ajouter L amie a la liste amies 实际传递此文本而不导致大量 JavaScript 错误的唯一方法是对其进行 HTML 编码
  • 如何在 iPhone 中使用彩信发送音频?

    我瞪大了眼睛MMS在 iPhone 中 但我没有找到太多这方面的信息 大多数发现都与图像有关 我想使用发送音频MMS in iPhone using ios sdk 可以这样做吗 我有以下疑问MMS 如何识别所有MMS音频文件在iPhone
  • 在 C# 中编写批处理脚本的好方法是什么?

    我想用 C 编写简单的脚本 我通常会使用 bat 或 4NT btm 文件 复制文件 解析文本 询问用户输入等等 相当简单 但在批处理文件中正确执行这些操作确实很困难 例如没有例外 我熟悉像 AxScript 这样的命令行 脚本 包装器 这
  • 将浮点型转换为双精度型

    我正在尝试转换Single to Double同时保持原来的价值 我找到了以下方法 Single f 5 2F Double d1 f 5 19999980926514 Double d2 Double Parse f ToString 5
  • 访问动态创建的控件 (c#)

    在我的代码后面 c 中 我动态创建了一些RadioButtonList 每个RadioButton中有更多RadioButton 我将所有控件放在一个特定的面板中 我需要知道的是稍后如何访问这些控件 因为它们不是在 aspx 文件中创建的