2011-03-08 1 views
1

에서 파생 된 목록 컨트롤 (예 : DropDownList, ListBox 또는 RadioButtonList)은 ListItem의 목록으로 채워집니다. ListItemValueText 속성을가집니다. ASP.NET : ListControl.Text가 * 텍스트 *가 아닌 선택한 ListItem의 * 값 *을 반환하는 이유는 무엇입니까?

  • ListControl.SelectedValue 반환 현재 ListItem 선택의 Value 재산,

    • ListControl.SelectedItem는 현재 ListItem 선택 반환

      ListControl 다음 방법은 현재 선택된 항목에 액세스 할 수 있습니다.

    자, 흥미로운 점은 다음과 같습니다 ListControl.SelectedValue

    • ListControl.Text 반환 정확히 같은 값. 예상대로, return SelectedItem.Text이 아닙니다.

    by design이다

    ListControl.Text 속성

    가져 오거나 ListControl의 제어의 SelectedValue 속성을 설정한다.

    는 [...]

    Text 속성 가져 소견 및 SelectedValue 속성과 같은 값을 설정한다.

    이것은 카운터 직관적이고 confuses people 인 것처럼 보입니다. 내 질문은 : 왜 이렇게 했는가? Text 속성을 제공하는 것이 ITextControl 인터페이스를 구현하는 데 필요하다고 생각할 수 있습니다.하지만 왜 Text이 아닌 ListItem의 Value을 반환하겠습니까?

  • 답변

    0

    .NET Reflector를 사용하기 전에 확인했습니다. ListItem.Text가 null이면 ListItem.Value를 대신 반환합니다. null의 경우, 빈 상태 (empty)의 캐릭터 라인이 돌려 주어집니다. ListItem.Value에서도 마찬가지로 작동합니다. 그래서 ListControl은 이것을하는 것이 아니라 선택된 항목 자체입니다.

    HTH.

    0

    ASPX 페이지를 처리하는 데 사용되는 코드가 ITextControl 인터페이스를 사용하는 모든 컨트롤을 정의하면 Text 속성 만 사용할 수 있습니다. ListControl을 처리 할 때 작성한 비즈니스 로직의 대부분은 텍스트가 아닌 선택한 항목의 값을 고려합니다. 따라서 필자의 견해로는 현재의 행동이 예상되는 행동 일 필요는 없다.

    관련 문제