2010-12-13 3 views
1

페이지에 데이터 바인딩 드롭 다운 목록이 있습니다. 여기서 page_load에서 selectedValue를 설정합니다 ('isPostBack'이 아님).값을 설정 한 후 dropDownList의 selectedValue() 가져 오기

페이지가 잘 표시되고 선택한 항목이 올바르게 표시되지만 .. selectedValue()를 가져 와서 화면에 표시하면 page_load 내부에서 항상 null이됩니다 ... selectedIndex는 -1입니다.

버튼을 클릭하면이 ddl의 selectedValue를 참조하고 여기에서 예상 결과를 가져옵니다. 그렇다면 어떻게 설정했는지 즉시 볼 수는 없지만 여전히 page_load에 있습니까?

환호 :

편집 : 코드 ..

DDL 선언

<asp:DropDownList runat="server" ID="dlCountryList" DataSourceID="dsCountryList" 
       DataValueField="countrylistid" DataTextField="description"> 
</asp:DropDownList> 

과를 Page_Load 수동

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    dlCountryList.SelectedValue = "GR" 
    Response.Write("*" + CStr(dlCountryList.SelectedIndex) + "*") 
End Sub 
+0

Page_Load에서 드롭 다운 목록의 마크 업과 C#/VB 코드 섹션을 붙여 넣을 수 있습니까? – jwiscarson

+0

선택한 값을 설정 한 후 dll DataBind() 메서드를 수동으로 호출 해보십시오. –

+0

@jwiscarson - 위 코드를 참조하십시오. –

답변

1

데이터 바인딩을 (전화) 드롭 방법 아래로 이동합니다.

SelectedValue는 드롭 다운이 바인딩 될 때 사용되는 "플래그"만 설정하여 컨트롤의 일반 get/set 속성이 아닙니다.

기본적으로 Page_Load 이벤트 (정확히 어떤 이벤트인지 모르지만)를 바인딩하지만 수동으로 호출 할 수도 있습니다.

+0

고맙습니다 :) 충분히 간단합니다. 나는 단지 그것을 기억해야합니다! –

+0

@ Tabllo 아무 문제도 .. 리플렉터로 파기 한 후에 SelectedValue를 설정하면 해당 아이템의 Selected 속성이 드롭 다운에 True로 지정되지만 드롭 다운의 SelectedIndex는 설정되지 않으며 SelectedValue 게터는 간단히 나타납니다 :'return this.Items [selectedIndex] .Value' (물론 selectedIndex가 -1이 아니기 전에 검사합니다) 그래서 항상 null 인 이유를 설명합니다. –

+0

저는 이것이 페이지 수명주기 문제라고 생각 했었습니다 - 좋은 발견! – jwiscarson

관련 문제