2011-05-03 2 views
0

안녕하세요 기본적으로 페이지의 마크 업에 선언 된 menuItems에 팝업을 추가 할 수있는 컨트롤을 만들고 싶습니다. 나는 아래처럼되고 구문을 싶습니다사이드 바 대시 보드 용 웹 사용자 컨트롤 만들기 각 항목에 대해 모달 팝업을 사용하여

<uc1:Sidebar id="" runat="server" enablePopup="True"> 
<PopUpBindings> 
<PopedControlId="" BackgroundClass="" TargetItemIndex=""/> 
<PopedControlId="" BackgroundClass="" TargetItemIndex=""/> 
.. 
</PopUpBindings> 
</uc1:Sidebar> 

은 내가 ASMX 페이지에서 회원 필드를 사용하여 enablePopUp을 만들 수 있어요. 아래처럼

private bool _enablePopup; 
public Boolean EnablePopup 
{ 
    get { return _enablePopup; } 
    set { _enablePopup = value; } 
} 

마크 업 1 에서처럼 바인딩 세트를 만들지 마십시오. 누군가가 이것에 대한 힌트를 줄 수 있을까요? 질문 2 : modalPopup을 Repeater의 Databinding과 함께 만들 수 없으므로이 사용자 정의 컨트롤을 만들고 있습니다. 를 얻기 위해 MSDN에서 this example code를 참조 - 나는 "대상 제어 이드 = {0}을 (를) 찾을 수 없습니다"

mpcpnlNewBp.TargetControlID = e.Item.ID;//open modalpopup 

답변

1

는 당신이 필요로하는 컨트롤에 Collection properties입니다하여 ItemDataBound 이벤트 만 던질 것이다 예외 중계기에 아래 시도 생각.

속성 편집을위한 UI와 같은 디자이너 지원이 더 필요한 경우 콜렉션 편집기 - this related example을 만들어야합니다.

EDIT : 리피터와 같은 템플릿 컨트롤에서는 모달 팝업에서 수행 할 수없는 올바른 부모 컨트롤 컨텍스트에서 대상 컨트롤을 찾아야합니다. 해결 방법은 모달 팝업의 대상 컨트롤로 페이지/사용자 컨트롤에 더미 (숨겨진) 컨트롤을 사용하고 필요에 따라 팝업을 숨기거나 표시하는 익스텐더의 Java 스크립트 API를 사용하는 것입니다 (클라이언트 쪽 API는 this article 참조).

+0

멋진 답변이지만 내 문제에서 어떻게 사용할 수 있는지 잘 모르겠다. 또한 리피터와 함께 modalPopup을 사용할 수있는 방법을 알고 계십니까? 내 질문에 섹션 코드 3 뒤에있는 코드는 컨트롤 ID가 페이지에 있지만 예외를 throw합니다. 나는 심지어 ClientId가 도움이되지 않는다는 것을 시도했다 – Deeptechtons

+0

@Deptechtons, 나의 실수 - 두 번째 질문을 완전히 놓쳤다! ModalPopup은 특정 중계기 항목 내에서 컨트롤을 검색해야하기 때문에 중계기에서 컨트롤을 찾을 수 없습니다. 그래서 다른 방법은 더미 타겟과 사용자 자바 스크립트 API를 사용하여 컨트롤을 표시하거나 숨기는 것입니다. 내 편집 된 답변을 참조하십시오. – VinayC

+0

답변 감사합니다. – Deeptechtons