代码之家  ›  专栏  ›  技术社区  ›  pirmas naujas

来自ascx codebehind的asp控件

  •  0
  • pirmas naujas  · 技术社区  · 13 年前

    我知道这个问题已经被问了一百次了,但我找不到解决我问题的办法。 我有这个ascx文件:

    <%@ Control Language="C#" AutoEventWireup="true" Inherits="FrontClass.CreateClientPortals.TopNavBar, FrontClass.CreateClientPortals, Version=1.0.0.0, Culture=neutral, PublicKeyToken=40f3875c9d373801"%>
    <div>
      <asp:Literal ID="test1" runat="server" visible="true">some text</asp:Literal>
    </div>
    

    而这个代码隐藏:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web.UI.WebControls;
    
    namespace FrontClass.CreateClientPortals
    {
        public partial class TopNavBar : System.Web.UI.UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                test1.visible = false;
            }
        }
    }
    

    尝试编译时,我收到错误: 名称“test1”在当前上下文中不存在

    我应该注意,这两个文件不在同一个目录中(它们需要在同一目录中吗?),并且我似乎无法生成designer.cs文件(尝试在设计模式下编辑ascx文件,但它没有出现)。我从另一个项目复制的ascx文件。

    谢谢你的帮助

    1 回复  |  直到 13 年前
        1
  •  1
  •   TombMedia    13 年前

    如果没有设计器文件,您将需要手动添加对test1的引用。将此添加到您的代码隐藏中。Studio创建分部类,将所有内容链接在一起,并且没有设计器文件,您将缺少引用。

    protected global::System.Web.UI.WebControls.Literal test1;

    推荐文章