2009-11-23 3 views
0

팝업을 시뮬레이트하기위한 ASP.Net (3.5) 페이지의 컨트롤 (Visual Studio 2008). 문제는 이러한 모든 팝업이 디자인 모드에서 페이지의 일반 컨트롤 위에 배치된다는 것입니다.

내 질문은 : 어떻게 디자인 모드에서 사용자 정의 컨트롤을 숨길 수 있습니다.디자인 모드에서 사용자 컨트롤 숨기기

답변

0

조금 주위를 검색하는 것에서 나는 당신이 ascx로 할 수 있다고 생각하지 않습니다. 나는 당신이 이것을 필요로한다면 사용자 정의 컨트롤로 바꾸어야한다고 생각합니다.

http://www.west-wind.com/WebLog/posts/189.aspx 도움이 될 수 있습니다

편집 : http://ajdotnet.wordpress.com/2006/08/28/do-you-value-design-time-support/

당신은 사용자 컨트롤의 인스턴스를 보유하고 사용자 지정 컨트롤을 만드는 경우이 작업을 수행 할 수 있어야하고,에 위의 연결 방법을 사용하여 수 모든 내용을 숨 깁니다.

+0

자세한 내용은 구성 요소의 디자이너를 사용자 지정하는 방법을 설명하지만 디자이너 뷰에서 사용자 정의 컨트롤을 완전히 숨기는 방법을 볼 수 없습니다. 도움을 주셔서 감사합니다. –

+0

! 이 게시물을 더 일찍 보았습니다. 나는 거기에 게시 된 것과 똑같은 해결책을 시도했지만 여전히 팝업이 나타납니다. –

+0

심지어 렌더링 함수에서 예외를 던지더라도 (무조건적으로 항상) 사용자 컨트롤이 렌더링되지 않게됩니다! –

2

사용자 정의 컨트롤을 사용하는 경우 디자이너가 코드를 무시한다는 사실을 활용할 수 있습니다.

는 사용자 정의 컨트롤에 두 가지 스타일을 만들 :

<style type="text/css"> 
    .hide 
    { 
     display:none; 
    } 
    .show 
    { 
     display:; 
    } 
</style> 

은 UserControl을 두 ASP 패널을 만듭니다

:

<asp:Panel ID="pnlDesigner" runat="server" CssClass="show"> 
Put content you want to show in designer here 
</asp:Panel> 
<asp:Panel ID="pnlDisplay" runat="server" CssClass="hide"> 
Put all your actual content here 
</asp:Panel> 

는 코드에 이것을 추가 나는 일에 다음과 같은 도착

protected override void OnPreRender(EventArgs e) 
    { 
     pnlDisplay.CssClass = "show"; 
     pnlDesigner.CssClass = "hide"; 

     base.OnPreRender(e); 
    } 

내게는 작은 텍스트 블록을 디자이너에서 렌더링하여 원하는 결과를 만듭니다. 사용자 정의 컨트롤

+0

아마도 userControls보다 많은 호스트 페이지를 편집하고 있기 때문에 usercontrol 디자이너도이 점을 숨 깁니다. –

관련 문제