来自ascx codebehind的asp控件

时间:2013-10-04 22:20:02

标签: c# asp.net ascx

我知道这已被问了好几百次,但我无法找到解决问题的方法。 我有这个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 个答案:

答案 0 :(得分:1)

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

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