J'ai beaucoup de zone de texte dans une application asp.net, et après avoir soumis leurs valeurs, je veux effacer tous les champs quand il se charge à nouveau?Effacer tous les champs après soumettre
Répondre
vous devez écrire et appeler similaire function
après submit
public static void EmptyTextBoxes(Control parent)
{
foreach (Control c in parent.Controls) {
if (c.GetType() == typeof(TextBox))
{
((TextBox)(c)).Text = string.Empty;
}
}
}
référence
Vous pouvez utiliser la méthode JavaScript reset() ou lancer en boucle toutes les zones de texte et définir la propriété Text sur une chaîne vide.
foreach(var control in this.Controls){
TextBox tb = control as TextBox;
if (tb != null)
{
tb.Text = string.Empty;
}
}
Vous pouvez le faire dans la page:
foreach (var tb in Controls.OfType<TextBox>())
{
tb.Text = null;
}
Si vous devez effacer toute une hiérarchie d'entre eux, appeler cette fois de la page: ClearTextBoxes(this);
Et voici la fonction:
private void ClearTextBoxes(Control c) {
foreach (var tb in c.Controls.OfType<TextBox>())
{
tb.Text = null;
}
foreach (var control in c.Controls) {
ClearTextBoxes(control); //Recurse down to children
}
}
public static Control[] FlattenHierachy(Control root)
{
List<Control> list = new List<Control>();
list.Add(root);
if (root.HasControls())
{
foreach (Control control in root.Controls)
{
list.AddRange(FlattenHierachy(control));
}
}
return list.ToArray();
}
private void ClearTextBoxes()
{
Control[] allControls = FlattenHierachy(Page);
foreach (Control control in allControls)
{
TextBox textBox = control as TextBox;
if (textBox != null)
{
textBox.Text = "";
}
}
}
Ce code collectera toutes les zones de texte dans une liste et définissez leur propriété text à "".
Bien Vous pouvez aussi bien définir le champ pour ne pas utiliser viewstate, ce qui impliquera dans un boost de performance, petit, mais néanmoins un boost. En outre, vous pouvez faire un response.redirect à la même page, ou un server.transfer.
Si ces deux solutions ne vous conviennent pas, vous pouvez utiliser un élément de type textbox.text = string.empty et dropdowlist.clearselection. Ils pourraient ne pas être aussi rapide que vous pourriez vouloir, ils sont beaucoup plus élégants.
SOLUTION COMPLÈTEMENT NON TESTÉ:
Tu ne peux pas utiliser ME.ViewState.Clear() dans les gestionnaires d'événements Init ou LoadViewState?
Ou il pourrait être Page.Viewstate.Clear() ou même Page.ClearChildViewState() ...
Désolé - ne l'ont pas essayé dans la colère ....
Et ceci pour la compensation tous les contrôles sous forme comme zone de texte, case à cocher, radioButton
vous pouvez ajouter différents types que vous voulez ..
private void ClearTextBoxes(Control control)
{
foreach (Control c in control.Controls)
{
if (c is TextBox)
{
((TextBox)c).Clear();
}
if (c.HasChildren)
{
ClearTextBoxes(c);
}
if (c is CheckBox)
{
((CheckBox)c).Checked = false;
}
if (c is RadioButton)
{
((RadioButton)c).Checked = false;
}
}
}
Créer une fonction appelée cleardata()
:
void cleardata()
{
textbox1.Clear();
textbox2.Clear();
textbox3.Clear();
textbox4.Clear();
}
Et appelez cette fonction lorsque vous en avez besoin.
Ceci est une vieille question, mais je voulais juste ajouter ce qui suit, dans le cas où les contrôles sont dans une zone de groupe , vous pouvez le faire comme ça, alors:
foreach (Control c in this.form.Controls)
{
//Tests each control to see if it is a GroupBox
if (c is GroupBox)
{
clearRadioButtons(c.Controls);
clearListBox(c.Controls);
resetDateTime(c.Controls);
clearTextBoxes(c.Controls);
clearComboBoxes(c.Controls);
}
}
public static void clearTextBoxes(Control.ControlCollection controls)
{
//Loops through all controls on form
foreach (Control c in controls)
{
//Tests each control to see if it is a textbox
if (c is TextBox)
{
//Converts to useable format and clears textboxes
var text = (TextBox)c;
text.Clear();
}
}
}
- 1. Effacer tous les champs après enregistrement inséré dans asp.net
- 2. Effacer tous les champs dans le formulaire ASP.net
- 3. Effacer tous les contrôles/cases à cocher sans soumettre
- 4. Comment effacer tous les champs de formulaire du code-behind?
- 5. effacer tous les composants d'entrée
- 6. Comment effacer les champs après publication dans asp.net mvc?
- 7. Puis-je désaffecter (effacer) tous les champs d'une instance?
- 8. effacer la zone de texte après le formulaire soumettre
- 9. Javascript effacer tous les cookies
- 10. Qt: comment effacer les champs de forme?
- 11. soumettre champs désactivés
- 12. sérialisation tous les champs
- 13. Effacer tous les RichTextBox d'un formulaire (VB.NET)
- 14. ajax/jquery désactive les liens après soumettre
- 15. Effacer tous les champs de texte en utilisant une boucle for?
- 16. Effacer les éléments après l'affichage de ContextMenuStrip
- 17. PartialView ne pas effacer après ajax postback
- 18. Effacer les champs sur CreateUserWizard, contrôle de connexion
- 19. Déclaration SQL Ajouter à tous les champs
- 20. fieldWithErrors pas envelopper tous les champs d'erreur
- 21. Sélection de tous les champs sauf un?
- 22. formulaire courriel PHP n'envoie tous les champs
- 23. Spring tente de lier tous les champs
- 24. PostgreSQL: CHOISIR tous les champs, en filtrer
- 25. Xstream: Ignorer implicitement tous les champs
- 26. comment rediriger formulaire après soumettre
- 27. Javascript: Effacer sur Envoyer, deux champs
- 28. Effacer tous les points d'arrêt dans une solution Visual Studio
- 29. Comment effacer récursivement tous les fichiers d'un dossier commençant par "._"?
- 30. WPF: Effacer tous les messages d'erreur de manière élégante
juste écrire cette ligne réinitialisera tous les champs. this.form1.ID = "newid"; – Adeel
Peut être utile, sauf si l'ID de formulaire est référencé (bien que pour des raisons évidentes, dans ASP.NET cela ne soit pas le cas) – CJM