【问题标题】:ASP.NET Control not available in CodeBehindASP.NET 控件在 CodeBehind 中不可用
【发布时间】:2012-04-22 06:43:48
【问题描述】:

我在我的 ABC.ASPX 页面上拖放了一个 Label 控件。它编译正确。 但是控件 (Label2) 在代码隐藏 ABC.ASPX.cs 中无法用于赋值。

分辨率是多少?

<%@ Page language="c#" CodeBehind="ABC.aspx.cs" AutoEventWireup="false" %> 

 <asp:Label ID="Label2" runat="server" Font-Bold="True"></asp:Label>

【问题讨论】:

  • 也许发布一些您尝试使用但失败的标记和代码?
  • 它看起来像: 吗?如果是这样,它应该显示代码隐藏。
  • 你的 abc.designer.cs 中有什么
  • 你能在你后面的代码中发布你试图访问标签的位置吗?不可用是否意味着没有完整的自动代码或访问它返回 null?

标签: c# asp.net webforms code-behind


【解决方案1】:

您的 Designer.cs 文件中可能缺少此条目。您可以在文件中添加类似这样的内容:

protected global::System.Web.UI.WebControls.Label Label2;

或者删除designer.cs文件,右击父aspx文件,选择“Convert to Web Application”。这应该重新创建包含所有适当条目的 Designer.cs 文件。

【讨论】:

  • visual studio 删除它并重新生成 *.cs 有同样的问题
【解决方案2】:

您可能需要在 Page Directive 中添加 Inherits="XXX.ABC",其中 XXX 是您的根命名空间。另外,我假设您将您的类 ABC 命名为与 ABC.aspx.cs 一致。

【讨论】:

    【解决方案3】:

    尝试删除控件,保存文件,再次添加控件,然后再次保存文件。问题可能出在您的 *.designer.cs 文件中,这种方法应该重新生成它。

    【讨论】:

      【解决方案4】:

      创建用户组件后,我想在 CalendarTest 页面中对其进行测试。我也无法通过背后的代码访问用户组件。我没有在线找到解决方案,但通过反复试验,我通过以下步骤修复了它:

      1) 在 aspx 文件中,

      2) 在 aspx.cs 文件后面的代码中,我需要将“public class CalendarTest”替换为“public partial class CalendarTest”

      【讨论】:

        【解决方案5】:

        右键单击项目然后选择转换为 Web 应用程序

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-01-02
          • 1970-01-01
          • 2013-01-23
          • 2012-09-12
          • 1970-01-01
          • 1970-01-01
          • 2016-09-20
          相关资源
          最近更新 更多