【问题标题】:Issue with .net dynamic control generation.net 动态控件生成问题
【发布时间】:2011-03-26 09:29:05
【问题描述】:

我正在开发一个 asp.net 网站(使用 C#)。我已将详细信息视图作为本网站数据输入系统的一部分。

详细信息视图包含一个下拉列表,用于将类别与提交到此数据输入系统的记录相关联。

文件背后的代码访问数据源(SQL server 2005 数据库表),以确定与所选类别相关联的字段并根据该类别中可用的字段生成复选框控件 p>

我了解(我认为).net 页面生命周期,以及在每次回发时添加动态控件以维护控件及其“状态”的必要性。然而:

  • 我了解到我必须在页面生命周期的 Page_Init/初始化阶段添加动态控件,以便动态控件属性和事件在回发时可用

  • 查询数据源(并确定类别选择的动态控件的数量和名称)所需的值在下拉列表的 SelectedIndexChanged 事件处理程序中分配,即总是在Page_init 事件之后处理

我不确定如何在页面生命周期的正确时间点(Page_init 事件)将所需的值(下拉列表的选定索引)传递给 Page_Init 事件。

我非常感谢来自 stackoverflow 社区的任何指点/帮助 感谢您抽出宝贵时间阅读这篇文章。

【问题讨论】:

    标签: c# asp.net dynamic controls


    【解决方案1】:

    您不必在 init 中添加控件,您也可以在 page_load 中添加它们。通常建议将它们添加到 init 中,因为这是页面生命周期中标记中定义的控件被实例化的点。为什么需要赋值来决定是否应该在SelectedIndexChanged事件中添加控件。如果它是基于下拉列表的 SelectedValue,您是否可以不简单地访问 SelectedValue 并在每个帖子上分配该值,即使它没有更改。然后您可以在 Page_Load 中执行此操作,然后添加您的控件。

    【讨论】:

    • Ben 的解决方案对我有用。感谢所有回答我问题的人,非常感谢。
    【解决方案2】:

    您所追求的值被回传到服务器,并且可以在Request.FormNameValueCollection 中找到。关键是下拉列表的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-21
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      相关资源
      最近更新 更多