2010-01-13 5 views
0

여러 양식의 웹 응용 프로그램을 설정 중입니다. 각 양식은 DataSource가 ObjectDataSource로 설정된 asp : FormView 내에서 정의됩니다. 각 양식은 자체 필드 세트를 포함하며 항상 여러 양식에 대해 동일한 하나 이상의 필드 블록을 포함합니다.asp.net 사용자 정의 usercontrol 높은 수준의 데이터 소스를 사용하는 방법?

이 블록이 동일하므로 사용자 지정 usercontrol에서이 블록을 정의하기로했습니다.

  1. 가 어떻게이 '높은' 단가로 UserControl을에서 입력 필드에 동일한 데이터 소스 를 사용할 수 있습니다 : FormView를이 함께했다 질문?
  2. 동일한 데이터 소스를 사용하여 usercontrol의 입력 필드에 DataBinding.Bind()를 사용할 수 있습니까?

미리 답변 해 주셔서 감사합니다.

답변

1

긴 검색 후이 웹 사이트에서 비슷한 문제를 발견했습니다 : http://weblogs.asp.net/anasghanem/archive/2009/03/31/sharing-formview-edit-and-insert-templates-and-avoid-duplicate-markup.aspx. 한마디로

솔루션 계층 :

<asp:FormView ID="FormView1" runat="server" DefaultMode="Edit" DataSourceID="ObjectDataSource1"> 
    <uc1:TestControl ID="TestControl1" runat="server" PhoneNumber='<%# Bind("PhoneNumber") %>' /> 

그리고 UserControl을위한 코드 숨김 :

[Bindable(true)] 
public partial class TestControl : System.Web.UI.UserControl 
{ 
    [Bindable(true), DefaultValue("")] 
    public string PhoneNumber 
    { 
     get 
     { 
      return this.PhoneTextBox.Text; 
     } 
     set 
     { 
      this.PhoneTextBox.Text = value; 
     } 
    } 
} 
관련 문제