2009-03-02 3 views
19

데이터 바인딩은 모두 선언적 코드에 관한 것입니다. 따라서 속성으로 원하는 것을 지정하면 프레임 워크가 나머지를 처리합니다. 내가 실수하고 데이터 바인딩이 S & M과 관련이 없다면, 맞습니까?DropDownList의 선택된 값을 바인딩하는 방법

그래서 DropDownList 컨트롤은 데이터 소스, 즉 목록 소스에 대한 바인딩 필드 만 제공하고 실제 데이터 필드에는 바인딩 필드를 제공하지 않는 이유는 무엇입니까? 즉 내가 선택한 값을 내 이름 DropDownList를 내 Person 레코드의 Name 필드에 바인드하는 방법은 어떨까요? 이것은 마이크로 소프트의 부분에 대한 총체적인 감독입니까, 아니면 내 부분에 대한 총체적인 감독입니까?

수동으로 설정 값을 읽어야하는 경우 양방향 데이터 바인딩의 요점은 무엇입니까?

답변

44

:

예는 (내가 열 "직원 ID"및 열 "EmployeeName"와 데이터 테이블을 가지고). 당신은 선언적으로 만 "SelectedValue = <퍼센트 # [코드 여기] %> 효과적으로 컨트롤이 데이터 바인딩 때 값이 설정되게된다.

<asp:DropDownList 
       ID="DropDownInfoSource" 
       runat="server" 
       DataSourceID="_employeeDataSource" 
       DataTextField="EmployeeName" 
       DataValueField="EmployeeID" 
       SelectedValue='<%# Bind("EmployeeID") %>' 
       /> 
+3

고마워, 나는 마크에서 조금 빠르다. 나는 Intellisense에서 Value 속성을 보았는데 아무 것도 보여주지 않았다. 그래서 나는 더 이상 보지 않고 질문했다. 우리는 논평에서 당혹스러운 이모티콘이 필요합니다. – ProfK

+1

.NET 4에서 컨트롤이 GridView의 ItemTemplate 안에 있더라도 "서식 파일 내 컨트롤의 속성에 바인딩 호출을 할당해야합니다."라는 오류가 표시됩니다. Binding을 Eval로 바꾸는 것이 나를 위해 일했습니다. –

+0

@Andrew - Mine은 편집 템플릿 필드 안에 있으며 asp.NET 4.0을 사용하고 있습니다. Bind 대신에 EVAL을 사용해 보았지만 여전히 작동하지 않았습니다. 어떤 아이디어? –

-1

데이터 소스, datatextfield (목록에 표시되는 항목) 및 datavaluefield를 정의하는 필드가 있습니다. 당신은 아래의 코드 같은 작업을 수행 할 수 있습니다

dropdownlist1.datasource = DT 
dropdownlist1.datatextfield = "EmployeeName" 
dropdownlist1.datavaluefield = "EmployeeID" 
dropdownlist1.databind() 
+7

당신은 내가 알고 볼 것 : 나는

예는

뒤에 설치에 코드의 "SelectedValue를"시도 정말 당신을 도울 것입니다 알고 있지만하지 않았다 않는다 선택된 가치를 어떻게 묶는 지 알고 싶었습니다. 다른 데이터 소스, 내가 물었다. – ProfK

+0

그것에 대해 아는 것이 중요하지 않습니다. 귀하의 질문이 다른 사람들에게 유익해야한다면 어쩌면 해결책의 변형을 포함해야합니다. – Harry

0

말하여"SelectedValue "를 설정할 수 없습니다 당신이 내 질문을 읽으면

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    DropDownInfoSource.SelectedValue = "1" ' your value, here 
End Sub 
관련 문제