0

我正在使用 .NET 框架 3.5 开发一个 ASP .NET 项目。我正在尝试将用户控件投射到另一个用户控件中,因此我正在使用以下代码。

在 test.ascx 文件中:

<%@ Reference Control="test2.ascx" %>

在 test.ascx.cs 文件中:

    private ASP.test2_ascx testing;
    protected void Button1_Click(object sender, EventArgs e)
    {
 testing = (ASP.treestructure_ascx)LoadControl("test2.ascx");
                testing.aload();

问题是单词“ASP”下划线表示“Error17 找不到类型或命名空间名称'ASP'(您是否缺少 using 指令或程序集引用?)”

4

1 回答 1

0

你不能马上做。Maketreestructure_ascxtest2_ascxfiles 继承自具有签名 aload 的接口,该签名实现了这两个控件。

public interface ICustomLoader
{
    public void aload();
}

对于这两个控件:

public class treestructure_ascx : UserControl, ICustomLoader
{
    public void aload()
    {
        //your loading codes goes here
    }
}

对于 test2_ascx

public class test2_ascx : UserControl, ICustomLoader
{
    public void aload()
    {
        //your loading codes goes here
    }
}

因此,您将能够投射控件并使用LoadControl,您将能够访问您的aload()

protected void Button1_Click(object sender, EventArgs e)
{
    var testing = (ICustomLoader)LoadControl("test2.ascx");
    testing.aload();
}

注意:我猜你不需要ASP命名空间。

于 2012-11-03T12:01:33.680 回答