2016-12-14 1 views
0

내가 아약스 ModalPopupExtender 내부에 이런 기능이 작동하지 않습니다추가 CSS는

private void BindListBox() 
{ 
    var obj; 
    // some code to bind obj 
    ListItem x = new ListItem(obj); 
    x.Attributes.Add("class", "headerStyle"); 
    lstListBox1.Items.Add(x); 
} 

나는 부트 스트랩 날짜 선택기를 초기화하는 코드를 OnPreRender 이벤트 내부에서이 기능을 넣어. 어떤 이유로 인해, 내가 코드를 실행하면

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 

    String script = "$(document).ready(function() {$('#" + txtDate.ClientID + "').datepicker({format: 'dd-mm-yyyy',autoclose: true});});"; 
    ScriptManager.RegisterStartupScript(base.Page, base.Page.GetType(), String.Format("jQuery_{0}", txtDate.ClientID), script, true);   

    BindListBox(); 
} 

OnPreRender

내부 날짜 선택기를 초기화해야한다, 목록 상자 항목의 마크 업이 headerStyle 클래스 속성으로 생성되지 않습니다. 텍스트와 값은 있지만 클래스 속성은 없습니다.

포스트 백시 속성이 손실된다는 내용을 읽었지만 class 속성을 추가 한 후에 다시 게시 할 필요가 없습니다. ModalPopupExtender에 내를 Page_Load 비어, 그리고 팝 불러 영문 내를 Page_Load는이 코드가 있습니다 문제입니다

protected void Page_Load(object sender, EventArgs e) 
    { 
     Page.Header.DataBind(); 
     if (!IsPostBack) 
     {     
      ModalPopupExtenderForm.Show(); 
     } 
    } 

잘 모르겠어요합니다.

ASPX Page_Load 또는 모달 팝업 Page_Load에서 함수를 호출했지만 변경하지 않았습니다.

상담하십시오.

+0

이 코드를 입력 해보십시오. if (! IsPostBack) { ModalPopupExtenderForm.Show(); } BindListBox(); OnPreRender에서 작동하는지 확인하십시오. – CodingYoshi

+0

안녕하세요, 답변 해 주셔서 감사합니다. 불행히도, 그것은 나를 위해 작동하지 않습니다. 아래에 내 대답을 게시 할 것입니다. –

답변

0

그 결과 근본 원인을 찾을 수 없습니다. 내 CSS와 함께 ASPX 라이프 사이클의 일부가 엉망인 것 같아 어떤 부분이 엉망인지 전혀 알지 못합니다. 이것에 대한 지루한 해결 방법을 수행해야합니다.

1) 목록 상자가 데이터 소스에 바인딩 될 때마다 루핑 항목이 헤더 인 경우이를 문자열 배열로 푸시합니다. 완성 된리스트 박스로 반복하면

2

는)를 Page_Load

4) 함수는 모든 검색 할 때 호출 될 함수를 생성 ViewState를

3)로 스트링 어레이를 저장할 헤더를 문자열 배열 ViewState에 저장하고 Attributes.Add()를 수행하십시오.

나는 이것을 현명한 해결책으로 생각하지 않지만 적어도 저에게는 효과적입니다.