2010-04-27 2 views
0

하위 클래스가 A1, A2, A3 인 추상 클래스 IA가 있다고 가정 해 봅니다.Master/Content로 리팩토링 할 때 FormView 템플릿이 깨집니다.

각 하위 클래스에 대해 해당 클래스의 코드를 삽입/편집 /보기 할 수있는 FormView가있는 페이지가있었습니다. 삽입/편집 /보기 용 템플릿은 모두 매우 유사하므로 대부분이 & 붙여 넣기였으며 컴파일러는 다른 템플릿에 동일한 ID를 가진 컨트롤이 있다는 데 아무런 문제가 없었습니다. 이 같은

뭔가 : 코드/마크 업의

<asp:FormView> 
    <InsertItemTemplate> 
     <asp:Label id="Label1" /> 
    </InsertItemTemplate> 
    <EditItemTemplate> 
     <asp:Label id="Label1" /> 
    </EdittItemTemplate> 
</asp:FormView> 

대부분은 페이지에 걸쳐 중복 었죠, 그래서의 마스터 페이지를 갖는 콘텐츠 위치 지정으로, 마스터/콘텐츠 형식을 사용하도록 리팩토링 템플릿 삽입/편집 /보기.

마스터 페이지 :

<asp:FormView> 
    <InsertItemTemplate> 
     <asp:ContentPlaceHolder ID="InsertItemTemplate"></asp:ContentPlaceHolder> 
    </InsertItemTemplate> 
    <EditItemTemplate> 
     <asp:ContentPlaceHolder ID="EditItemTemplate"></asp:ContentPlaceHolder> 
    </EdittItemTemplate> 
</asp:FormView> 

및 콘텐츠 페이지 : 콘텐츠 페이지 템플릿에서

<asp:Content ContentPlaceHolderID="InsertItemTemplate"> 
    <asp:Label id="Label1" /> 
</asp:Content> 
<asp:Content ContentPlaceHolderID="EditItemTemplate"> 
    <asp:Label id="Label1" /> 
</asp:Content> 

, 지금 컴파일러 내가 리팩토링 전에하고 있던 똑같은 일을하고 있지만 해요 오류로 인해 오류가 발생합니다. BC30260: 'Label1' is already declared as 'Protected WithEvents Label1 As System.Web.UI.WebControls.Label' in this class.

무엇인가 이유로 인해 콘텐츠 블록의 컨트롤이 템플릿에 있었던 것과 같은 방식으로 분리되지 않습니다 콘텐츠 자리 표시자가 개별 템플릿에도 있지만

내 컨트롤의 이름을 바꾸는 방법 외에 다른 방법이 있습니까?

+0

다른 사람이 비슷한 문제가있는 것 같습니다 : http://stackoverflow.com/questions/2335843/updatepanel-in-formview-insert-and-updateitem – PhilChuang

답변

관련 문제