naveed
naveed

Reputation: 41

The name does not exist in the current context

I have a masterpage in my asp.net 3.5 application and I have some controls and jquery stuff. I try to access the controls in codebehind and it says :

The name 'DrpStates' does not exist in the current context  

Why it is not accessible in codebehind ?

Upvotes: 4

Views: 9109

Answers (4)

Neal
Neal

Reputation: 37

reason : - When we create a code behind file, ASP.NET also automatically generates a designer file. In that designer file all the controls are initialized and loaded. Sometimes when we create a new control, it fails to re-initialize the designer file and you can't get access to the control in the code behind file.

There is a simple Solution to this situation.

Step1 : open the the yourfile.aspx.designer.cs file

  • you will find things like " protected global::System.Web.UI.WebControls.Label Label2; "
  • these are the initialized components in the sequence in which they were generated by you.

Step2: just copy and paste the following line repeatedly for every missing component that were not recognized by the code behind : "global::System.Web.UI.WebControls."+Class of the component that you are missing + single space + id of the missing component.

Step3: save the file and voila all the components error disappear magically.

Upvotes: 0

live-love
live-love

Reputation: 52494

There could be a problem with your .designer.cs file. Check if you have a designer file with the same name as your aspx (or ascx) file.

If you open the aspx file and switch between design view and html view and back it will prompt VS to check the controls and add any that are missing to the designer file.

Try right clicking on the aspx and select "Convert to Web Application".

You can also try deleting the .designer.cs file and then recreate an empty file with the same name.

Upvotes: 0

Shadow Wizzard
Shadow Wizzard

Reputation: 66398

It's probably part of the master page or parent page, try using FindControl method:

this.Page.FindControl("DrpStates");

Upvotes: 2

neeebzz
neeebzz

Reputation: 11538

When you create a code behind file, ASP.NET also automatically generates a designer file (which is right next to it). In that designer file all the controls are initialized and loaded. Sometimes (for reasons unknown) when you create a new control, it fails to re-initialize the designer file and you can't get access to the control in the code behind file.

Try doing this >

  1. Delete the designer file (right click > delete)
  2. Right click on the aspx file > Convert to Web Application

Should work now

Upvotes: 9

Related Questions