Asp.net 正在页面_Init()中检索新的DropdownList.SelectedIndex

Asp.net 正在页面_Init()中检索新的DropdownList.SelectedIndex,asp.net,page-init,Asp.net,Page Init,虽然我从stackoverflow收集了很多答案,但这是我发布的第一个问题。因此,请原谅在遵守任何协议方面的任何过失。3天以来,我一直在努力解决一个问题。我在互联网上读过大量的页面,但没有找到任何解决方案(我认为这肯定是存在的!) 问题:比如说,我在pageinit中创建了3个动态控件,ddl1(DropdownList)、ddl2(DropdownList)、txt3(Textbox)。基于ddl1的SelectedIndex,我在页面_Init中启用或禁用ddl2。基于ddl2的Select

虽然我从stackoverflow收集了很多答案,但这是我发布的第一个问题。因此,请原谅在遵守任何协议方面的任何过失。3天以来,我一直在努力解决一个问题。我在互联网上读过大量的页面,但没有找到任何解决方案(我认为这肯定是存在的!)

问题:比如说,我在pageinit中创建了3个动态控件,ddl1(DropdownList)、ddl2(DropdownList)、txt3(Textbox)。基于ddl1的SelectedIndex,我在页面_Init中启用或禁用ddl2。基于ddl2的SelectedIndex,我启用或禁用txt3。这可能会发生多次

第一次加载页面时,我从数据库中获取ddl1的值,以确定应该启用还是禁用ddl2。这个很好用

ddl1和ddl2具有SelectedIndex的动态事件处理程序,更改如下:

ddl1.SelectedIndexChanged += new EventHandler(EnableDisableEventHandler);
现在,如果用户更改了ddl1中的项,则会触发Page_Init,最后触发ddl1事件处理程序。问题是,我想在Page_Init()中确定dd1的新SelectedIndex,以便启用/禁用ddl2。由于页面未呈现,我无法使用FindControl。我使用的是一个面板,它有一个表,有行,有单元格,有这些控件——如果这些信息有用的话。我尝试使用此表确定新值(对于ddl2,ddl1已经添加到表中)。但是,该表没有新的SelectedIndex

请告诉我这个问题是否有解决办法。我可以处理SelectedIndexChanged事件并再次运行启用/禁用逻辑。然而,这使得页面速度非常慢

请帮忙

非常感谢,,
Bhushan

您需要显示代码,以便我们可以模拟问题。请使用页面加载。“由于页面未呈现,我无法使用FindControl。”-这意味着什么?创建ddl1和ddl2的代码位于何处?如果您已经有ddl2引用,为什么需要使用FindControl?如果您每次都创建动态控件,它会有所不同。您将如何获得selectedindex?根据我的理解,在page_Init中,将不会加载视图状态,因此您将如何获得数据?我认为最好的位置是page_Load谢谢!首先,ddl1、ddl2和txt3(大约有100个这样的动态创建的控件)都是在Page_Init中创建的。在Page_Load()中创建控件时,事件处理和AutoEventWireUp不起作用。更多关于这方面的信息@shreesha是的,由于未加载ViewState,因此无法在页面_Init()中访问更改后的SelectedIndex。将enable disable logic移动到Page_Load()会使系统速度非常慢。不知怎的,我觉得一定有办法在回发后访问旧页面ddl1.SelectedIndex。