2013-04-18 8 views
3

ImageButton_Click 이벤트에서 새 프로젝트를 시작 했으므로이 명령을 사용했습니다.이 명령은 내가 사용하고있는 모든 페이지에서 완벽하게 작동합니다. 필드가 비어 있으면 예를 들어 alert을 보냅니다.ScriptManager.RegisterStartUpScript (...) not working

ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('No Empty fields are allowed.');", true); 

는 내가 여기서 뭐 해요 : 나는 두 날짜를 입력 2 textboxes을 가지고,이 날짜는 내 reportviewer을 채우기 위해 사용되지만, 그것은 reportviewer에 가기 전에, 나는 empty 여부 있는지 확인합니다.

이 페이지에서는 버튼을 처음 사용할 때만 작동합니다. 중단 점을 사용하고 을 통과하면 내 조건부 IF이 표시되지만 메시지가 표시되지 않습니다 ... 이유가 무엇입니까? Button_Click Event A의
전체 코드 : 내가 처음하여 누른 후

if (Txt_Dt_Final.Text == "" || Txt_Dt_Inicial.Text == "") 
    { 
     ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('No Empty fields are allowed.');", true); 
     Txt_Dt_Inicial.Focus(); 
     return; 
    } 

UPDATE 사실
, 아무것도 나는 그것이 작동하지 않는 유효한 날짜를 입력해도 ... 더 이상 작동하지 않습니다. .. 지금 테스트 해봤는데 오류가 처음으로 버튼을 눌렀을 경우에만 오류가 나타납니다.
예 :
날짜를 입력하면 내 보고서 작성자가 내 보고서의 결과를 반환합니다 ... 그런 다음 빈 텍스트 상자가있는 버튼을 클릭하면 오류가 발생하고 메시지가 표시됩니다. 다시 누르면 잘 작동합니다!

이제 빈 필드가있는 버튼을 처음 누르면 버튼이 더 이상 작동하지 않습니다! 내가 페이지를 새로 고치면 다시 작동합니다 ... 왜? o.O
내 모든 다른 페이지가 완벽하게 작동합니다.

+0

업데이트 패널에 이미지 버튼이 있습니까? –

+0

@AndrewWalters 네, 맞습니다. – Ghaleon

+0

스크립트 키의 고유 ID를 사용하는 것만 다르다. ScriptManager.RegisterStartupScript (this.Page, this.Page.GetType(), Guid.NewGuid(). ToString(), "alert ('빈 필드가 허용되지 않습니다.'); ", true); 아마 스크립트가 캐시 됨 –

답변

6

업데이트 패널에 ASP 컨트롤이 없으면 코드가 작동합니다. 그렇다면이 방법을 사용하십시오.

ScriptManager.RegisterStartupScript(updatePanel,updatePanel.GetType() 
                , "alert", javaScript, true); 
+1

하지만 난 항상 이걸 내부에서 사용했습니다. 'UpdatePanel' 그리고 항상 일했는데 ... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 들었습니다. – Ghaleon