FormView 내에 ascx 컨트롤이 있습니다. 내가 원하는 것은 ascx 내부에 Bind 구문을 사용하는 것입니다. 여기 내부 .ascx 컨트롤 및 FormView의 데이터 바인딩
<asp:ObjectDataSource runat="server" ID="ods" TypeName="MyDS" SelectMethod="Get" UpdateMethod="Update" DataObjectTypeName="Ent">
</asp:ObjectDataSource>
<asp:FormView runat="server" DefaultMode="Edit" ID="fv1" DataSourceID="ods">
<EditItemTemplate>
<uc1:WebUserControl ID="WebUserControl1" runat="server" />
<asp:Button runat="server" CommandName="Update" Text="Update"/>
</EditItemTemplate>
</asp:FormView>
가 WebUserControl.ascx입니다 : 텍스트 상자 모두에 값을 선택에
<asp:TextBox ID="txt1" runat="server" Text='<%# Bind("Name") %>' />
잘 작동 여기 내 페이지입니다. 바인딩은 텍스트 상자에 예상 값을 채 웁니다. 그러나 "Update"버튼을 눌렀을 때 ObjectDataSource의 메소드 Update는 입력 된 텍스트가 예상되는 동안 이름 대신 null이있는 Ent 인스턴스를 가져옵니다. 테스트 용으로 .aspx에 텍스트 상자를 넣었으며 모든 것이 잘 작동합니다.
필자는 반사체 FormView에 의해 역 컴파일을 마쳤습니다. 여기서 ExtractRowValues는 직접 자식을 통해 반복 된 이후에 실패했습니다. 누구든지 어린이 구속력을 해결하는 방법을 알고 있습니까?
같은 질문을 입력하는 중이었습니다. 당신의 생각이 잘 드러났습니다. 또한 폼뷰 내에서 ascx 컨트롤의 속성을 데이터 바인딩하고 같은 문제에 직면하려고합니다. 너가 그것을 이해하면 공유 하십시요. –
@The_AlienCoder Reflector로 분해했습니다. 중첩 컨트롤의 경우 updateTemplate에 대한 구문 분석 구문 구문이 없습니다. 그러나 같은 구문이 itemTemplate에서 제공되므로 aspx의 구문 분석을 재정의하는 것이 유일한 방법입니다. – Dewfy