2010-01-03 15 views
6

mam kontrolę tekstowe ASP.NET „fromdate”, którego widoczne właściwość jest ustawiona na false, ale chciałem po stronie klienta JavaScript, żeby móc włączyć właściwość widoczności za pomocą właściwości CSSKontrola ASP.NET z widoczną = false nie może być używana w javascript?

element1.style.display = "none"; // hides the element 
element1.style.display = ""; // shows the element 

ale gdy próbuję aby uzyskać tekstowe, mam zerowy na

var element1 = document.getElementById("FromDate"); 

Gdy próbuję tego samego kodu z visble = true jako domyślny na „fromdate” kontroli ASP.NET, to działa (choć nie jest to zachowanie muszę)

Wszelkie pomysły?

Odpowiedz

13

Jeśli chcesz ukryć tę kontrolę, można spróbować CSS tak:

<asp:somecontrol id="FromDate" style="display:none" /> 

myślę ukrywanie kontrolę z CSS jest łatwiejszy do zrozumienia.

+2

z kodu źródłowego: somecontrol.Style ("display") = "none" –

17

Po ustawieniu Visible = false na formant nie jest renderowany. Oznacza to, że nie ma żadnej reprezentacji HTML tej kontroli wysyłanej do strony. Ustaw tylko styl.

Można ustawić styl jak display: none z kodu po stronie serwera takiego:

FromDate.Style.Add(HtmlTextWriterStyle.Display, "none") 
+0

Czy można wywoływać zdarzenia, gdy widoczne jest fałsz? Pytanie o bezpieczeństwo. –

+0

@Ufuk: Jakie wydarzenia? Zdarzenia JavaScript nie mogą zostać wywołane, ponieważ nie ma nic na kliencie. Zdarzenia po stronie serwera nadal mogą być wywoływane (chociaż kontrola mogła zostać napisana w taki sposób, że zdarzenia nie zostaną podniesione, jeśli właściwość Visible ma wartość false). –

+0

Zdarzenia po stronie serwera, takie jak kliknięcie przycisku. Jeśli ktoś bałagan z oddzwonieniem, czy może wywołać te zdarzenia? –

2

Zamiast ustawiać Visible = false, ustawioną style.display sobie równych, w ten sposób element jest nadal tam JavaScript do manipulowania.

Powiązane problemy