【问题标题】:UserControl inherit from another class to extend itUserControl 从另一个类继承来扩展它
【发布时间】:2014-11-06 11:48:08
【问题描述】:

我有一个第三方控件ClientPeoplePicker。问题是无法禁用此控件。为了禁用它,我将控件放在一个带有 position:relative ("1") 的 div 中,并添加另一个带有 position:absolute 和高 z-index ("2") 的控件。所以aspx结构是:

<div id="1">
 <div id=2/>
 <clientpeoplepicker/>
</div>

现在,我想创建一个用户控件,它将呈现上述所有内容并从 ClientPeoplePicker 继承,因此我可以使用继承,而不必将在内部创建的 ClientPeoplePicker 的属性映射到控件包装器上。我怎样才能实现这个(最好的方法)?如果我只是在用户控件中创建一个实例,在 CreateChildControls 中创建它,我将失去继承。还是应该覆盖渲染?

【问题讨论】:

    标签: asp.net inheritance webforms user-controls


    【解决方案1】:

    好的,所以我选择了覆盖 RenderControl

    编辑:

    完整代码:

        private bool _enabled = true;
        public new bool Enabled
        {
            get
            {
                return _enabled;
            }
            set
            {
                _enabled = value;
            }
        }
    
        Panel divWrapper;
        Panel divBlocker;
    
        public override void RenderControl(HtmlTextWriter writer)
        {
            divWrapper = new Panel();
            divWrapper.ID = base.ClientID + "_divWrapper";
            divWrapper.CssClass = this.CssWraper;
    
            divBlocker = new Panel();
            divBlocker.ID = base.ClientID + "_divBlocker";
            divBlocker.CssClass = this.CssBlocker;
            if(this.Enabled)
            {
                divBlocker.Style.Add("display", "none");
            }
    
            divWrapper.RenderBeginTag(writer);
            divBlocker.RenderControl(writer);
    
            base.RenderControl(writer);
    
            divWrapper.RenderEndTag(writer);
        }
    

    CSS

    .cpp_blockdiv
    {
    z-index: 1000;
    margin: 0px;
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0.1;
    position: absolute;
    }
    
    .cpp_container
    {
    position:relative;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      相关资源
      最近更新 更多