在服务器控件的OnLoad中的Page.Request

时间:2013-10-25 12:39:01

标签: c# asp.net

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

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

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

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

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

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

(我们不在这个登录控件/页面讨论这个奇怪的设计 - 把它当作我问题的常量)。

1 个答案:

答案 0 :(得分:0)

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

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