我的asp.net 3.5应用程序中有一个母版页,我有一些控件和jquery的东西。我尝试访问代码隐藏中的控件,并说:
The name 'DrpStates' does not exist in the current context
为什么在代码隐藏中无法访问它?
答案 0 :(得分:9)
当您在文件后面创建代码时,ASP.NET还会自动生成一个设计器文件(紧挨着它)。在该设计器文件中,所有控件都被初始化并加载。创建新控件时有时(原因未知),无法重新初始化设计器文件,也无法访问代码隐藏文件中的控件。
尝试这样做>
现在应该工作
答案 1 :(得分:2)
它可能是母版页或母版页的一部分,请尝试使用FindControl
方法:
this.Page.FindControl("DrpStates");
答案 2 :(得分:0)
您的.designer.cs文件可能存在问题。检查您是否有与aspx(或ascx)文件同名的设计器文件。
如果打开aspx文件并在设计视图和html视图之间切换并返回,它将提示VS检查控件并添加设计器文件中缺少的任何文件。
尝试右键单击aspx并选择“转换为Web应用程序”。
您也可以尝试删除.designer.cs文件,然后重新创建一个同名的空文件。
答案 3 :(得分:0)
原因: - 当我们在文件后面创建代码时,ASP.NET也会自动生成一个设计器文件。在该设计器文件中,所有控件都被初始化并加载。有时,当我们创建一个新控件时,它无法重新初始化设计器文件,并且无法访问代码隐藏文件中的控件。
这种情况有一个简单的解决方案。
步骤1:打开yourfile.aspx.designer.cs文件
步骤2:只需为每个缺少的组件重复复制并粘贴以下行 由后面的代码识别:“global :: System.Web.UI.WebControls。”+你缺少的组件的类+缺少组件的单个空格+ id。
步骤3:保存文件并瞧瞧所有组件错误消失。