开发者

Is ctl00 a constant in ASP NET?

开发者 https://www.devze.com 2023-03-18 10:52 出处:网络
I need to reference a control in my web app that was generated with the use of a master page. The name of the control in the HTML becomes something like this \"ctl00$MainContent$ListBox1\". Can I s开发

I need to reference a control in my web app that was generated with the use of a master page. The name of the control in the HTML becomes something like this "ctl00$MainContent$ListBox1". Can I s开发者_开发技巧afely do this in the code?

string strName = "ctl00$MainContent$ListBox1";
if (Request.Form[strName] != null)
{
String selectedLanguage = Request.Form[strName];
}

PS. I cannot use ClientID property because this code is called from InitializeCulture() override.


You could, but what I do is set the MasterPage ID in my 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"; 
}


ctl00 is the generated ID of your masterpage. In the code-behind, you can set this.ID to whatever you want and any sub-content will be prefixed with that ID instead.

The problem with the code you have above is you're relying on a magic string for a control ID - you need to be careful with this as controls get moved into user controls and master pages become nested. I'm not sure why you can't use ListBox1.SelectedValue?

0

精彩评论

暂无评论...
验证码 换一张
取 消