在服务器控件的 OnLoad 中,我想执行以下操作:
string username = Page.Request["UsernameTextBox"];
然后在 CreateChildControls 中创建实际控件(因此我只需要在回发时执行此操作)。
问题是我不能以这种方式使用 ID,因为在这种情况下必须通过名称引用控件。如果我对其进行硬编码,我可以通过这样做来解决问题:
string username = Page.Request["ctl02$ctl00$ctl02$ctl00$ctl02$ctl03$ctl03$ctl02$ctl01"];
当然,考虑到控制层次结构可能会发生变化,这将是一个糟糕的解决方案。所以我的问题是:有没有办法让我在 OnLoad 中获取这个控件名称。如果我能找到从 NamingContainer 或其他东西计算名称的方法,我会很好。
(我们不要在此登录控件/页面中讨论这种奇怪的设计 - 将其视为我的问题的常量)。