首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从另一个UserControl继承UserControl?

如何从另一个UserControl继承UserControl?
EN

Stack Overflow用户
提问于 2013-10-07 06:51:15
回答 1查看 8.9K关注 0票数 7

是否可以从另一个用户控件继承用户控件?

我想要实现的是从另一个用户控件继承的用户控件。所以我有baseusercontrol.ascx,这个只有文本“东西”。然后我有另一个用户控件,childusercontrol.ascx继承了baseusercontrol.ascx。如果我不改变childusercontrol.ascx中的任何内容,我就会期望baseusercontrol.ascx文本显示“东西”。

同时,我应该能够扩展派生的基本用户控制功能。

我也尝试过类似this的东西,但在我的情况下,这还不够。

现在我的childusercontrol.ascx看起来就在下面

代码语言:javascript
运行
复制
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="childusercontrol.ascx.cs" Inherits="test_childusercontrol" %>
<%@ Register src="baseusercontrol.ascx" tagname="baseusercontrol" tagprefix="uc1" %>

childusercontrol.ascx.cs如下所示

代码语言:javascript
运行
复制
public partial class test_childusercontrol : baseusercontrol
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }   
}

当我浏览这个页面时,我会收到错误

代码语言:javascript
运行
复制
Object reference not set to an instance of an object.
Description : An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details : System.NullReferenceException: Object reference not set to an instance of an object.

有线索吗?

EN

回答 1

Stack Overflow用户

发布于 2014-01-23 14:00:01

我已经为自己测试过这种情况。实际上,不能从基类继承,基类是带有自己的ASCX代码的UserControl

但是,您可以做的是,在(可能是抽象的)基类(没有ASCX)中实现一些基本功能,如下所示:

代码语言:javascript
运行
复制
public class BaseClass:UserControl
{
    public String BaseGreeting { get { return "Welcomebase!"; }}
}

然后在具有自己的UserControl文件的具体ASCX类中使用此基类的方法和属性。

代码语言:javascript
运行
复制
public partial class childusercontrol : BaseClass
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Greeting = base.BaseGreeting; //As initial value
    }
    public String Greeting
    {
        get { return LabelGreeting.Text; }
        set { LabelGreeting.Text = value; }
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19218640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档