无法在代码中引用控件。 Visual Studio 2012

时间:2014-04-08 12:10:49

标签: asp.net vb.net visual-studio-2012 user-controls

关于这个(对我来说,反复出现)问题,有很多问题,但没有一个问题解决了我的问题。

问题:

无论我在aspx页面中添加什么控件,都无法在代码隐藏中识别。编译不起作用,因为无法识别ID。

以下所有内容均无效:

  • 清理并重建解决方案。
  • 关闭并打开VS
  • 删除asp.net临时文件
  • 检查项目的目标框架。
  • 检查装配是否全部存在。
  • 检查设计器viewn以查看控件是否确实存在(确实如此)
  • 使用JS函数获取控件的ID以检查它是否是预期的(它是)

问题最近才开始。事实上,我可以很好地引用较旧的控件。 使用标准ASP控件和Telerik控件都会出现问题。

有谁知道我应该尝试的其他事情?请帮助我,我正处于项目中间,这导致了不必要的延误,ta。

3 个答案:

答案 0 :(得分:0)

确保所有的asp.net控件(在.aspx文件中)都具有:

runat='server'

tag ...如果没有这个,你将无法引用控件。

e.g。

<asp:Label runat='server' Text='Test Label' ID='TestLabel' />

希望这有助于......

Rodit

答案 1 :(得分:0)

这就是我解决问题的方法。有关它的完整说明,请参阅上面的评论。

  1. 我注意到虽然我的项目已经是网络应用程序类型,但设计师文件并没有显示出来。
  2. 我强制要求重新编译设计器文件,方法是单击“转换为Web应用程序”&#39;选项
  3. 然后我能够引用控件ID。

    感谢评论员。

答案 2 :(得分:0)

我遇到了类似的问题,因为我使用的是预先生成的登录页面。我的解决方案是改变这一部分:

<asp:Login runat="server" ViewStateMode="Disabled"   RenderOuterTable="false">
<LayoutTemplate>

对此:

<asp:Login ID="asplogin" runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
<LayoutTemplate>

基本上,我刚刚在asp:Login中添加了一个ID,允许我通过在控件名前加上asplogin

来从后面访问代码中的对象

asplogin.youControlNameHere