2010-03-02 3 views
0

기본적으로 GridView와 HiddenField로 구성된 UserControl을 UpdatePanel에 포함하는 ModalPopupExtender가 있습니다. HiddenField는 선택된 행의 번호를 저장합니다. 이렇게하면 행을 선택할 때 포스트 백을 방지 할 수 있습니다.
ModalPopupExtender에는 GridView의 행을 선택하지 않을 때 사용할 수 없도록 설정하려는 일부 버튼이 포함되어 있습니다. 따라서 다음과 같은 자바 스크립트는 pageLoad() 메소드에서 실행됩니다ASP.NET GridView를 표시하려면 마우스 이동이 필요합니다.

function trackSelection() 
{ 
    var hf = $get('<%= SXGVSavedTemplates.ClientID %>'+ '_hfSelected'); 

     if(hf != null) 
     { 
      hf.onpropertychange = function() 
      { 
       var btnOk = $get('<%= btnLoadTemplateOK.ClientID %>'); 
       var btnDelete = $get('<%= btnLoadTemplateDelete.ClientID %>'); 
       var hfSelected = $get('<%= SXGVSavedTemplates.ClientID %>'+ '_hfSelected'); 

       var disabled = (hfSelected.value == ""); 
       if(btnOk != null) 
       { 
        btnOk.disabled = disabled; 
       } 
       if(btnDelete != null) 
       { 
        btnDelete.disabled = disabled; 
       } 
      } 
     } 
} 


지금이 완벽하게 잘 작동합니다. ModalPopup이 표시되면 버튼이 비활성화됩니다. 행을 선택하자마자 버튼이 활성화됩니다. 이것은 위대합니다. 그러나 문제는 GridView가있는 UserControl이 사라진다는 것입니다. 브라우저 창 크기를 조정하면 다시 나타납니다.
Ajax Control Toolkit 라이브러리의 CTP 버전이 프로젝트에서 사용되는 이유는 무엇입니까 (이유는 묻지 마십시오). 이것이 문제가 될 수 있습니까?
나는 어떤 제안이라도 고맙게 생각합니다.

답변

0

해결책을 찾았습니다. 분명히 브라우저는 어떤 이유로 그리드를 다시 그리지 않습니다. 따라서 나는 그렇게하도록 강요했다. 그러므로 나는 다음 무엇을 추가하는 스크립트를 수정 :

var grid = $get('<%= SXGVSavedTemplates.ClientID %>'+'_gv'); 
if(grid != null) 
{ 
    grid.className = grid.className; 
} 


이는 일을했다.

관련 문제