【问题标题】:ASP.net Dynamic Controls not being built when expectedASP.net 动态控件未按预期构建
【发布时间】:2011-03-07 01:46:48
【问题描述】:

我有一个报告模块 (C# asp.net),它使用动态控件来表示所选报告的不同参数。

动态控件构建和显示良好(XML 存储在 SQL Server 2008 和 XSLT 中,用于转换为 HTML)。

我的问题是我有一个下拉列表(不是动态创建的),其中包含作为文本的报告名称和作为值的报告 ID。此 DDL 在其选定索引更改时回发。当 DDL 回发时,会填充包含所选报告 ID 的会话和视图状态变量。我想读取这个变量并用它来生成动态参数控件。这就是发生的事情:

1.Reports DDL初始值(text="--Reports--",value="-1")

2.用户从 DDL 中选择报告。

3.Reports DDL 用户选择的值(text="Report1", value = "1")。

4.DDL 回传并生成动态参数控件。

5. 报告值 1 通过 DDL 的 selectedindexchanged 事件放置在 session/viewstate 变量中。

问题是在步骤 4 中生成的动态参数控件的报告值为 -1,因为控件是在 selectedindexchanged 事件触发之前生成的,因此动态控件比 DDL 领先一步。

所有这些控件都在 AJAX 更新面板中(所有控件都在同一个面板中)。

解决这个问题的最佳方法是什么?

谢谢,

丰富。

【问题讨论】:

    标签: c# asp.net ajax dynamic controls


    【解决方案1】:

    解决这个问题的最佳方法是一个小技巧,可以为您节省大量时间和挫败感。

    在您的动态控件构造例程中,只需检查Request["MyDropDownID"] 以获取您的下拉列表发布的值,而不是等待加载视图状态和触发下拉列表的事件处理程序。

    你可以在我的old answer here中看到更多关于这个的解释。

    【讨论】:

    • 感谢 womp 整理出来。不太好用,但你去吧!
    猜你喜欢
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 2017-01-09
    相关资源
    最近更新 更多