Muszę usunąć formant (pole tekstowe) z mojej strony po sprawdzeniu określonego warunku. Czy można to zrobić z poziomu kodu lub potrzebuję JavaScript.Usunięcie formantu asp.net z kodu źródłowego
UWAGA muszę usunąć kontrolę, nie do ukrycia ...
Muszę usunąć formant (pole tekstowe) z mojej strony po sprawdzeniu określonego warunku. Czy można to zrobić z poziomu kodu lub potrzebuję JavaScript.Usunięcie formantu asp.net z kodu źródłowego
UWAGA muszę usunąć kontrolę, nie do ukrycia ...
Korzystając Controls.Remove
lub Controls.RemoveAt
na rodzica ControlCollection
.
Na przykład, jeśli chcesz usunąć wszystkie tekstowych ze strony w górę:
var allTextBoxes = Page.Controls.OfType<TextBox>().ToList();
foreach(TextBox txt in allTextBoxes)
Page.Controls.Remove(txt);
(zauważ, że trzeba dodać using System.Linq
dla Enumerable.OfType
)
lub jeśli chcesz usunąć TextBox o podanym ID:
TextBox textBox1 = (TextBox)Page.FindControl("TextBox1"); // note that this doesn't work when you use MasterPages
if(textBox1 != null)
Page.Controls.Remove(textBox1);
Jeśli chcesz go ukryć (i usunąć z poziomu cl ientside całkowicie), możesz również uczynić go niewidocznym:
textBox1.Visible = false;
Tak, można po prostu usunąć je z kolekcji Controles strony:
this.Controls.Remove(control);
Chociaż można usunąć to z kolekcji kontrolek, dlaczego nie ukryć tego?
yourTextBox.Visible = false;
Zapobiegnie to włączeniu go do wygenerowanego html wysłanego do przeglądarki.
Po ustawieniu .Visible=false
, nie zostanie on nigdy wyrenderowany na stronie. Jeśli usuniesz kontrolkę z kolekcji Controls, nie rób tego podczas faz, ponieważ spowoduje to wyrzucenie wyjątku.
Dynamiczne dodawanie lub usuwanie kontrolek może powodować problemy.
Można spróbować z tego kodu - na podstawie Remove method
this.Controls.Remove(YourControl);
Link: http://msdn.microsoft.com/en-US/library/system.web.ui.controlcollection.remove(v=vs.80).aspx
Po prostu usuń go za pomocą identyfikatora z kolekcji Kontrolki stron. – IrishChieftain
Kiedy jest sprawdzany stan pacjenta? Czy jest to przed/podczas renderowania strony? Jeśli nie, rzeczywiście potrzebujesz javascript/DOM, aby to zrobić bez przeładowywania strony. –
@JHudler warunek jest oceniany podczas page_load – davioooh