2014-09-12 2 views
0

타사 컨트롤이 있습니다 ClientPeoplePicker. 문제는이 컨트롤을 비활성화 할 수 없다는 것입니다. 그것을 비활성화하기 위해 div : position (relative) ("1")에 div를 추가하고 position : absolute 및 high z-index ("2")와 함께 div를 추가합니다. 내가 ClientPeoplePicker에서 상속 또한 위의 모든 렌더링하는 사용자 컨트롤을 만들려면 지금UserControl은 다른 클래스에서 상속 받음

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

, 그래서 나는 ClientPeoplePicker 내부 생성의 특성을 매핑해야 상속을 사용 할 수 없습니다 그래서 영문 구조는 제어 래퍼로 나는 이것을 (최선의 방법으로) 어떻게 얻을 수 있습니까? CreateChildControls에서 인스턴스를 생성하기 위해 사용자 정의 컨트롤 안에 인스턴스를 만들면 상속을 잃게됩니다. 아니면 렌더링을 재정의해야합니까?

답변

0

확인, 그래서 내가 무시 갔다 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; 
}