我需要在我的网页应用中引用一个使用母版页生成的控件。 HTML中控件的名称变为类似“ctl00 $ MainContent $ ListBox1”。我可以在代码中安全地执行此操作吗?
string strName = "ctl00$MainContent$ListBox1";
if (Request.Form[strName] != null)
{
String selectedLanguage = Request.Form[strName];
}
PS。我无法使用ClientID属性,因为此代码是从InitializeCulture()覆盖。
调用的答案 0 :(得分:12)
你可以,但我所做的是在Init()
:
protected void Page_Init( object sender, EventArgs e )
{
// this must be done in Page_Init or the controls
// will still use "ctl00_xxx", instead of "Mstr_xxx"
this.ID = "Mstr";
}
答案 1 :(得分:2)
ctl00是您的母版页的生成ID。在代码隐藏中,您可以将this.ID
设置为您想要的任何内容,而任何子内容都将以该ID为前缀。
上面代码的问题在于你依赖于一个魔术字符串作为控件ID - 你需要小心这一点,因为控件会被移动到用户控件中并且母版页会嵌套。我不确定为什么你不能使用ListBox1.SelectedValue
?