2010-03-01 30 views

Respuesta

14

que necesita para escribir y llamar similares function después submit

public static void EmptyTextBoxes(Control parent) 
    { 
     foreach (Control c in parent.Controls) { 
     if (c.GetType() == typeof(TextBox)) 
     { 
      ((TextBox)(c)).Text = string.Empty;    
     } 
     } 
    } 

referencia

http://www.tek-tips.com/faqs.cfm?fid=6470

0

Puede usar el método JavaScript de reset() o el bucle para arrojar todas las cajas de texto y establecer la propiedad Text en una cadena vacía.

foreach(var control in this.Controls){ 
    TextBox tb = control as TextBox; 
    if (tb != null) 
    { 
     tb.Text = string.Empty; 
    } 
} 
0

usted puede hacer esto en la página:

foreach (var tb in Controls.OfType<TextBox>()) 
{ 
    tb.Text = null; 
} 

Si es necesario borrar toda una jerarquía de ellos, llamar a esto una vez en la página: ClearTextBoxes(this);

Y aquí es la función:

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 
    } 
} 
0
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 = ""; 
     } 
    } 
} 

Este código será recoger todos los cuadros de texto en una lista y establece su propiedad de texto en "".

0

Bueno, también puede establecer el campo para no usar viewstate, lo que implicará un aumento en el rendimiento, pequeño, pero un impulso, no obstante. Además, podría hacer una respuesta.redirecto a la misma página, o un servidor.transferencia.
Si esas dos soluciones no le convienen, puede usar algo de textbox.text = string.empty, y dropdowlist.clearselection. Puede que no sean tan rápidos como quisieras, son mucho más elegantes.

0

solución completamente sin probar:

¿No puedes usar ME.ViewState.Clear() en los controladores de eventos Init o LoadViewState?

O podría ser Page.Viewstate.Clear() o incluso Page.ClearChildViewState() ...

Lo sentimos - no lo han intentado en la ira ....

+0

acaba de escribir esta línea restablecerá todos los campos. this.form1.ID = "newid"; – Adeel

+0

Podría ser útil, excepto cuando se hace referencia al ID del formulario (aunque por razones obvias, en ASP.NET esto no suele ser el caso) – CJM

4

Y esto para despejar todos los controles en la forma como el cuadro de texto, casilla de verificación, botón de radio

le puede añadir diferentes tipos que quiera ..

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; 
      } 
     } 
    } 
-1

crear una función llamada cleardata():

void cleardata() 
{ 
    textbox1.Clear(); 
    textbox2.Clear(); 
    textbox3.Clear(); 
    textbox4.Clear(); 
} 

Y llame a esta función cuando lo necesite.

0

Ésta es una vieja pregunta, pero yo sólo quería añadir lo siguiente, en caso de que los controles están en una caja grupo, puede hacerlo de esta manera, entonces:

 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(); 
      } 
     } 
    } 
Cuestiones relacionadas