Page.Request in OnLoad of a Server Control



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

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

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

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

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

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

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

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

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

最新更新