0

在服务器控件的 OnLoad 中,我想执行以下操作:

string username = Page.Request["UsernameTextBox"];

然后在 CreateChildControls 中创建实际控件(因此我只需要在回发时执行此操作)。

问题是我不能以这种方式使用 ID,因为在这种情况下必须通过名称引用控件。如果我对其进行硬编码,我可以通过这样做来解决问题:

string username = Page.Request["ctl02$ctl00$ctl02$ctl00$ctl02$ctl03$ctl03$ctl02$ctl01"];

当然,考虑到控制层次结构可能会发生变化,这将是一个糟糕的解决方案。所以我的问题是:有没有办法让我在 OnLoad 中获取这个控件名称。如果我能找到从 NamingContainer 或其他东西计算名称的方法,我会很好。

(我们不要在此登录控件/页面中讨论这种奇怪的设计 - 将其视为我的问题的常量)。

4

1 回答 1

0

您可以将用户名文本框的 ClientIDMode 属性设置为静态。

http://msdn.microsoft.com/en-us/library/system.web.ui.clientidmode.aspx

于 2013-10-25T12:53:09.657 回答