비슷한 구조의 FormView가 여러 개 있습니다. 중복 마크 업을 피하기 위해 FormView가 포함 된 마스터 페이지를 만들고 FormView 내에 ContentPlaceHolder를 배치했습니다. 페이지에서 페이지로 변경되는 유일한 데이터 바인딩 된 컨트롤은 해당 마스터 페이지를 사용하는 페이지에 있습니다.마스터 페이지의 FormView는 ContentPlaceHolder 경계를 통해 데이터 바인딩 된 컨트롤을 볼 수 없습니다.
<%@ master ... %>
...
<form runat=server>
...
<asp:formview runat="server" ... >
<edititemtemplate>
... Lots of common markup ...
<asp:contentplaceholder id='FormRows' runat='server' />
... Lots more common markup ...
</edititemtemplate>
</asp:formview>
...
</form>
이 같은 모양으로 마스터 페이지 사용하여 페이지 : 기존 레코드의 FormView로
<%@ page masterpagefile="Form.Master" ... %>
<asp:content contentplaceholderid="FormRows" runat="server" >
...
<p>
Field One:
<asp:textbox runat=server text='<%#Bind("Field1")%>' id='Field1' />
</p>
<p>
Field Two:
<asp:textbox runat=server text='<%#Bind("Field2")%>' id='Field2' />
</p>
...
</asp:content>
을
그래서 내가 이렇게 보이는 마스터 페이지가 데이터 바인딩 된 컨트롤 (Field1 등)을 통해보고 올바른 데이터로 채 웁니다. 그러나 삽입 또는 업데이트 할 때 삽입 또는 업데이트에 포함되지 않습니다. FormView_ItemInserting
이벤트에서 e.Values
은 비어 있습니다. 마찬가지로 FormView_ItemUpdating
이벤트에서 e.NewValues
은 비어 있습니다.
그래서 :
은의 ContentPlaceHolder 내부의 데이터 바인딩 된 컨트롤을 통해 볼 수있는 마스터 페이지의 FormView을 자극 할 수있는 방법이 있습니까?
데이터 봉인
<%#Bind(...)%>
으로 제어되는 컨트롤을 식별 할 수 있도록 직접 값 봉지에 추가 할 수있는 방법이 있습니까?
데이터 소스는 어디에 있습니까? – Jon
@ 존 - 데이터 소스는 마스터 페이지의 FormView 옆에 있습니다. 실제로는 SqlDatasource에서 상속 한 사용자 지정 데이터 소스입니다. 페이지는 대화 할 테이블을 알려주고 그에 따라 자체 select, update, insert 및 delete를 빌드합니다. –