【问题标题】:ASP.NET server side control not declared in CodeBehindASP.NET 服务器端控件未在 CodeBehind 中声明
【发布时间】:2012-09-24 16:10:43
【问题描述】:

我知道在 Visual Studio 中直接在 HTML 中声明服务器端控件一直存在问题。通常,您必须在设计模式下打开页面,以便在后面的代码中生成它们,以便您可以通过代码进行访问。但我确实有一个奇怪的问题。我在继承母版页的页面上添加了一个 asp:Label 控件。

<asp:Label ID="uxEnteteresultat" runat="server" Text="Test"></asp:Label>

这些页面使用名为Ext.Net 的框架,该框架生成Ext.js 代码。我的设计器根本不起作用,所以我无法在代码隐藏文件中生成此控件。

那些控件声明在哪里???在旧版本的 .Net 中(我在 VS 2010 中使用 4.0 框架),我们可以在部分类中看到它。他们现在在哪里 ?是否有解决方法可以在 VS 2010 中自己声明控件?

谢谢!


根本没有designer.cs 文件。这是一个网站,而不是一个项目。这可能是问题的一部分...

【问题讨论】:

    标签: asp.net .net visual-studio-2010 declaration server-side-controls


    【解决方案1】:

    VS 2010 中,每个表单应包含三个部分:

    • MyForm.aspx
    • MyForm.aspx.cs
    • MyForm.aspx.designer.cs

    你应该可以像这样添加标签:

    将此添加到MyForm.aspx

    <asp:Label ID="lblOrganizer" runat="server" /> 
    

    将此添加到MyForm.aspx.designer.cs(在public partial class 内):

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

    【讨论】:

      【解决方案2】:

      mypage.aspx 页面内声明的控件是在 mypage.aspx.designer.cs

      内的部分类中创建的
      /// <summary>
      /// uxEnteteresultat control.
      /// </summary>
      /// <remarks>
      /// Auto-generated field.
      /// To modify move field declaration from designer file to code-behind file.
      /// </remarks>
      protected global::System.Web.UI.WebControls.Label uxEnteteresultat;
      

      如果您的控件未在此文件中声明,则不会出现在代码隐藏 mypage.aspx.cs 中。请记住,所有控件都应在其 HTML 声明中包含属性 runat = "server"。

      【讨论】:

        【解决方案3】:

        检查这个类似的问题:

        Asp.net controls are not accessible in code behind

        如果您正在获得智能感知,那么您很好,因为您不必在 ASP.NET 2.0(部分类)之后的代码隐藏中显式声明您的控件。如果您无法访问它,请检查您的设计器文件并手动添加它 用户 1694951。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-11-21
          • 2016-04-08
          • 2011-01-18
          • 2010-11-11
          • 1970-01-01
          • 2012-07-12
          • 2012-04-22
          相关资源
          最近更新 更多