Visual Studio에서는 HtmlButton이나 HtmlInputText 같은 HTML 서버 컨트롤에 대해 DataList, DataGrid, TextBox 같은 웹 서버 컨트롤과는 다른 방식으로 데이터 바인딩을 지원합니다.


HTML 서버 컨트롤을 데이터 바인딩하려면


바인딩할 속성을 데이터 바인딩 식으로 설정합니다. 자세한 내용은 Web Forms 페이지의 데이터 바인딩 식을 참조하십시오. 식은 단일 값으로 평가되어야 합니다.


속성 창이나 HTML 뷰에서 HTML 서버 컨트롤 속성을 설정할 수 있습니다. 속성 창에서는 인용 부호 없이 데이터 바인딩 식을 입력합니다. HTML 뷰에서는 식을 인용 부호 안에 넣어야 합니다.


HtmlInputText 같은 컨트롤의 value 속성을 설정하는 경우 데이터 바인딩 식은 디자인 타임에 컨트롤의 텍스트나 캡션으로 나타납니다. 그러나 런타임에는 식이 평가되어 결과가 표시됩니다.


다음 예제에서는 HtmlInputText 컨트롤을 저자의 이름에 바인딩한 후 HTML 뷰에 표시되는 모양을 보여 줍니다. 이 바인딩에서는 authors 테이블에서 가져온 정보를 표시하는 DataView1 데이터 뷰가 페이지에 포함되어 있다고 가정합니다. 식에서는 데이터 뷰에서 반환되는 첫 번째 레코드(0번)에서 au_lname 값을 가져옵니다.


<INPUT id="Text1"
   type="text"
   name="Text1"
   runat="server"
   value='<%# DataBinder.Eval(DataView1, "[0].au_lname") %>'
>


HtmlSelect 서버 컨트롤(HTML Listbox Dropdown 컨트롤)은 레코드를 여러 개 표시할 수 있으므로 특수한 데이터 바인딩 속성을 지원하며 데이터 바인딩 절차도 약간 다릅니다.


HtmlSelect 서버 컨트롤을 데이터 바인딩하려면


컨트롤의 DataSource 속성을 여러 개의 값으로 평가되는 데이터 바인딩 식으로 설정합니다. 자세한 내용은 Web Forms 페이지의 데이터 바인딩 식을 참조하십시오. 일반적인 값은 페이지에 있는 데이터 집합 인스턴스의 이름입니다.


속성 창이나 HTML 뷰에서 속성을 설정할 수 있습니다. 속성 창에서는 인용 부호 없이 값을 입력합니다. HTML 뷰에서는 값을 인용 부호 안에 넣어야 합니다.


여러 테이블이 포함된 데이터 집합에 바인딩하는 경우처럼 데이터 소스에 멤버가 여러 개 있는 경우에는 컨트롤의 DataMember 속성을 사용할 멤버 이름으로 설정합니다.


멤버에 필드가 여러 개 있는 경우에는 컨트롤의 DataTextField 속성을 표시할 필드의 이름으로 설정합니다. 예를 들어, 대개 이 속성을 데이터 테이블에 있는 열의 이름으로 설정합니다.


컨트롤에는 이름을 표시하지만 ID 번호를 반환하는 경우처럼 사용자가 선택하는 값과는 다른 값을 반환하려면 DataValueField 속성을 설정합니다.


다음 예제에서는 HtmlSelect 컨트롤을 데이터 집합 인스턴스 DsAuthors1에 있는 authors 테이블에 바인딩한 후 HTML 뷰에 나타나는 모양을 보여 줍니다. 이 컨트롤에서는 au_lname 열의 값을 표시하고 사용자가 값을 선택하면 au_id 열의 값을 반환합니다.


<SELECT id="Select1" size="2" name="Select1" runat="server"
   DataSource="<%# DsAuthors1 %>"
   DataMember="authors"
   DataTextField="au_lname"
   DataValueField="au_id">
   <OPTION></OPTION>
</SELECT>


자료출처 : ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1042/vbcon/html/vbtskdatabindinghtmlselectservercontrol.htm

+ Recent posts