动态添加UserControl不会在选择更改时触发PostBack事件?

时间:2010-08-20 06:37:07

标签: asp.net user-controls

我对用户控件有一个非常奇怪的问题,我们在asp.net网页(.net 2.0)上动态加载。用户控件有3个下拉列表,其中一个附加了selectedindexchanged事件(使用一组值加载第三个下拉列表)。

奇怪的是,如果当前在表单的其他部分中存在任何无效字段(其中已激活字段验证程序),当您选择有关FIRST更改的问题下拉列表时它什么都不做,但随后当你再次改变索引时,它完美地运作!我不明白这个事件不会在第一次改变时发生,而是为了之后的每次改变。

但是,如果所有这些字段都正确填充在usercontrol上方,则会正确触发selectedindexchanged事件。

关于验证我已经禁用所有可能的验证,以试图消除它作为罪魁祸首,所以我不明白验证如何影响用户控制。

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:2)

  1. 如果您不想在第一个下拉列表的selectionIndexChange上验证表单,只需添加属性CauseValidation="false",它就不会在selectionIndexChange上激活表单验证。

  2. 如果要动态添加控件(在运行时),请确保您没有在if(!IsPostBack)块中执行此操作,因为您还必须在回发时添加控件。这取决于您如何添加控件,但通常这些是处理此类问题时的常见错误