2010-06-09 12 views
16

OK - pracuję więc nad systemem, który używa niestandardowego kontrolera datepicker (wiem, że istnieją inne tam. .. dla spójności chciałbym zrozumieć, dlaczego mój aktualny problem się dzieje i napraw to).RegisterStartupScript wydaje się nie działać na odświeżenie strony w panelu aktualizacji

więc jej niestandardowy kontrola użytkownika z pola tekstowego i robi to na Page_PreRender:

protected void Page_PreRender(object sender, EventArgs e) 
    { 

     string clientScript = @" 
     $(function(){ 
     $('#" + this.Date1.ClientID + @"').datepicker({dateFormat: 'dd/mm/yy', constrainInput: true}); 
     });"; 
     Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID, clientScript, true); 

     //Type t = this.GetType(); 
     //if (!Page.ClientScript.IsStartupScriptRegistered(t, this.ClientID)) 
     //{ 
     // Page.ClientScript.RegisterStartupScript(t, this.ClientID, clientScript, true); 
     //} 
    } 

Ignoruj ​​wykomentowane rzeczy - że został mi spróbować czegoś innego - nie pomogło.

Moim problemem jest to, że wszystko działa poprawnie po załadowaniu strony. Ale jeśli wybiorę coś z listy rozwijanej powodującej odświeżenie strony - po kliknięciu w pola daty przestaną działać. Tak jak w I powinny być w stanie kliknąć w polu tekstowym i pojawi się ładny kontroli kalendarza. Ale po odświeżeniu strony nie ma ładnej kontroli kalendarza!

W tej chwili wszystkie są pakowane (na stronie hostowania) w panelu aktualizacji. Komentuję więc zawartość panelu aktualizacji, a daty działają po odesłaniu strony. Wygląda więc na coś związanego z tym panelem aktualizacji.

Wszelkie sugestie proszę?

Dzięki!

Odpowiedz

29

Czy próbowałeś ScriptManager zamiast Page.ClientScript? Spojrzałem na kod, który napisałem wcześniej z UpdatePanels i jQuery i użyłem ScriptManager. Myślę, że skrypt nie jest dostępny podczas częściowego odświeżenia, jeśli nie jest zarejestrowany w ScriptManager.

wygląda następująco:

ScriptManager.RegisterStartupScript(Page, this.GetType(), "DatePickerScript", clientScript, true); 
+0

Dzięki tak dużo :) Myślałam, że natknąć się ten problem wcześniej, ale nie mógł sobie przypomnieć alternatywę !! – Jen

+1

Dzięki, zaoszczędziło mi to dużo czasu. –

+1

Po wielu drapaniach głowy zadziałało to dla mnie. Dzięki!!! – Yass

Powiązane problemy