我在我的asp.net 3.5应用程序中有一个masterpage,我有一些控件和jQuery的东西。我试图访问代码隐藏的控件,它说:该名称在当前上下文中不存在
The name 'DrpStates' does not exist in the current context
为什么它不能在代码隐藏中访问?
我在我的asp.net 3.5应用程序中有一个masterpage,我有一些控件和jQuery的东西。我试图访问代码隐藏的控件,它说:该名称在当前上下文中不存在
The name 'DrpStates' does not exist in the current context
为什么它不能在代码隐藏中访问?
当您在文件后面创建代码时,ASP.NET也会自动生成一个设计器文件(紧挨着它)。在该设计器文件中,所有控件都被初始化并加载。有时(出于未知原因),当您创建一个新控件时,它无法重新初始化设计器文件,并且无法访问代码隐藏文件中的控件。
尝试这样做>
现在应该工作
这可能是母版页或母版页的一部分,请尝试使用FindControl
方法:
this.Page.FindControl("DrpStates");
不,它是页面的一部分 – naveed 2011-05-01 10:53:04
@naveed你的意思是它直接在'.aspx'中,失败的代码在'.aspx.cs'代码中? – 2011-05-01 10:54:22
您的.designer.cs文件可能存在问题。检查您的设计器文件是否与您的aspx(或ascx)文件具有相同的名称。
如果你打开aspx文件并在设计视图和html视图之间切换,它会提示VS检查控件并添加缺少的设计器文件。
尝试右键单击aspx并选择“转换为Web应用程序”。
您也可以尝试删除.designer.cs文件,然后重新创建一个具有相同名称的空文件。
原因: - 当我们在文件后面创建一个代码时,ASP.NET也自动生成一个设计器文件。在该设计器文件中,所有控件都被初始化并加载。有时,当我们创建一个新的控件时,它无法重新初始化设计器文件,并且无法访问代码隐藏文件中的控件。
这种情况有一个简单的解决方案。
第一步:打开的文件yourfile.aspx.designer.cs
第二步:刚才反复说没有 通过后面的代码承认每个缺少的组件复制并粘贴以下行:组件的“全球:: System.Web.UI.WebControls” +级,你缺少+单个空格+缺失组件的ID。
第3步:保存文件,并瞧所有的组件错误消失神奇。
哪个项目使用Web应用程序或网站? – 2011-05-01 10:45:09
请发表您的表单设计,以便我们能够理解您的问题。 – 2011-05-01 11:01:14