2010-07-08 6 views
1

이것은 하루 종일 나를 괴롭혔습니다. 이 문제가 몇 번 발생하는 것을 본 적이 있습니다. 본질적으로 변경 될 때 아래 양식을 채우는 드롭 다운 목록이 있습니다. 기본 항목입니다. 첫 페이지로드시에는 문제가 없지만 드롭 다운 목록이 변경되면 포스트 백 이후에는 완전히 비어 있고 SelectedIndexChanged 이벤트는 절대 실행되지 않습니다. 나는 그것이 모두 viewstate 문제를 지적합니다. 여기.net DropDownList가 포스트 백 이후에 지워짐

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     IEnumerable<ExtranetUser> users = Users(); 
     UsersList.DataSource = users; 
     UsersList.Items.Insert(0, new ListItem("-- Select User --", "0")); 
     UsersList.DataBind(); 
    } 
} 
...

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="EditUser.ascx.cs" Inherits="Controls_EditUser" %> 
<asp:DropDownList OnSelectedIndexChanged="SelectedIndexChanged" AutoPostBack="true" ID="UsersList" EnableViewState="true" 
    runat="server" DataTextField="EXTRANET_USER_EMAIL" DataValueField="EXTRANET_USER_ID"> 
</asp:DropDownList> 

과 pageload .. 코드의

이에 어떤 도움은 대단히 감사하겠습니다!

당신은 후 Page_Init 이벤트에 컨트롤을 추가 ... 완전히 새로운 답 : 나는 ...

답변

3

편집 간단 뭔가 확실 해요? 동적으로 추가 된 컨트롤이 추가되기 전에이 이후와 ViewState가 이미 구문 분석되어 페이지의 컨트롤에 적용됩니다. 이 참조 : http://msdn.microsoft.com/en-us/library/ms178472.aspx

+0

빠른 응답 주셔서 감사합니다 :) 나는 같은 문제가 항목 수집의 유무에 관계없이 발생합니다. 또한 목록은 첫 번째 페이지로드시 잘 작성됩니다. – Chris

+0

2. 결합 할 수 있습니다. 2. AppendDataBoundItems = "true"속성을 DDL에 설정하십시오. 그러나, OP는 초기 페이지로드에서 문제가 없으며 포스트 백 이후에 예상치 못한 동작 만 보는 것으로 보았 기 때문에 이것이 문제가 아니라고 생각합니다. –

+0

방금 ​​사용자 컨트롤임을 알게되었습니다. 동적으로 페이지에 추가됩니까? –

0

시도가 또 다시 게시에있는 항목의 순서가의 ViewState를 유지하는 것이 중요합니다

<%@ Control Language="C#" EnableViewState="True" AutoEventWireup="true" CodeFile="EditUser.ascx.cs" Inherits="Controls_EditUser" %> 

또한 페이지의 지시에의 EnableViewState를 추가. 포스트 백 이후에 일부 컨트롤이 없어진 것일 수 있습니까?

+0

슬프게도 나는 체인을 통해 viewstate를 사용할 수있게 해 봤지만 아무것도하지 않았습니다. – Chris

관련 문제