2014-02-19 6 views
0

내부에 btnClose 버튼이있는 UpdatePanel 안에 mpeNew라는 MPE가 있습니다. 페이지에 dropdownlists가 거의없는 selectedIndexChange 이벤트와 함께 표시되어야합니다.DropDownList와 함께 ModalPopUpExtender가 작동하지 않습니다.

C 번호 :

protected void ddlCustomer_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if(ddlCustomer.SelectedIndex==1) 
    { 
    ViewState["sender"] = sender; //MPE shows up only when this line's commented 
    mpeNew.show(); 
    } 
} 

protected void btnClose_Click(object sender, EventArgs e) 
{ 
    mpeNew.Hide(); 
    DropDownList ddl = (DropDownList)ViewState["sender"]; 
    ddl.SelectedIndex = 0; 
} 

모달은 viewstate가 선언이 주석 경우에만 표시됩니다. 그러나 어느 드롭 다운이 모달을 열 었는지 아는 것은 중요합니다. 또한이 드롭 다운을 사용하여 updatepanel에서 트리거로 시도했습니다. 오류가 없습니다. 모달 그냥 팝업. 어디서 잘못 될까요? 또는 내가 원하는 것을 얻는 다른 방법이 있습니다.

+0

브라우저에서 자바 스크립트 오류 및 디버깅을 사용 설정하여 클라이언트 측 오류가 발생했는지 확인해보십시오. –

+0

'잡히지 않은 PagerequestManagerServerErrorException. 값 system.web.ui.webcontrols.dropdownlist 형식의 system.web.ui.webcontrols.dropdownlist 값을 serialize하는 중 오류가 발생했습니다. 무엇에 대한 거지. 어떻게 고치는 지? – Ruby

+1

DDL이 serilizable로 표시되지 않아서 ViewState에 저장할 수 없기 때문에 사용자 의견에 따라 질문에 대답했습니다. 오류가 발생했습니다. –

답변

1

드롭 다운 컨트롤은 직렬화 할 수 없으므로 코드를 뷰 상태에 저장하면 코드가 손상됩니다. 보낸 사람을 저장하는 대신 ViewState에서 드롭 다운의 ID를 저장하는 것이 더 적절합니다. 신분증을 통해 항상 FindControl("Id") 기능을 사용할 수 있습니다. 코드를 기반으로 한 Exaple :

ViewState["sender"] = ddlControl.ID; 

DropDownList ddl = (DropDownList)FindControl(ViewState["sender"]); 

희망이 있습니다.

+0

고맙습니다. – Ruby

+0

그게 효과가 없습니다. DropDownList ddl = (DropDownList) FindControl (ViewState [ "sender"]. ToString());'ddl이 null입니다. – Ruby

+1

드롭 다운이 어떤 패널 안에 있으면 예를 들어보십시오. Panel1.FincControl (ViewState [ "sender"]. ToString()). 나는 그것이 효과가있을 것이라고 생각한다. –

관련 문제