提交后清除所有字段
答
你需要编写,并呼吁类似function
后submit
public static void EmptyTextBoxes(Control parent)
{
foreach (Control c in parent.Controls) {
if (c.GetType() == typeof(TextBox))
{
((TextBox)(c)).Text = string.Empty;
}
}
}
参考
答
您可以使用JavaScript形式的reset()方法或循环引出所有文本框并将Text属性设置为空字符串。
foreach(var control in this.Controls){
TextBox tb = control as TextBox;
if (tb != null)
{
tb.Text = string.Empty;
}
}
答
你可以在页面中做到这一点:
foreach (var tb in Controls.OfType<TextBox>())
{
tb.Text = null;
}
如果需要清除它们的整个层次,从页面调用一次这样的:ClearTextBoxes(this);
而这里的功能:
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 = "";
}
}
}
此代码将收集所有文本框在一个列表将他们的textproperty设置为“”。
答
那么你也可以设置字段不使用视图状态,这将意味着在性能上的提升,虽然很小,但仍然是一种提升。 同样,您可以对同一页或server.transfer执行response.redirect。
如果这两种解决方案不适合你,你可以使用textbox.text = string.empty和dropdowlist.clearselection。他们可能没有你想要的那么快,他们更优雅。
答
没有经过充分测试解决方案:在初始化或LoadViewState事件处理
不能使用ME.ViewState.Clear()?
或者它可能是Page.Viewstate.Clear(),甚至Page.ClearChildViewState()...
对不起 - 还没有尝试过在愤怒....
答
这清除像文本框,复选框形式的所有控件,单选按钮
你可以添加你想要不同类型..
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;
}
}
}
答
创建一个函数调用cleardata()
:
void cleardata()
{
textbox1.Clear();
textbox2.Clear();
textbox3.Clear();
textbox4.Clear();
}
并随时调用此函数。
答
这是一个老问题,但我只是想补充以下,以防控件处于组框,你能做到这样,那么:
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();
}
}
}
只写这条线将重置所有字段。 this.form1。ID =“newid”; – Adeel 2010-03-01 12:47:59
可能很有用,除非表单ID被引用(尽管出于显而易见的原因,在ASP.NET中,这往往不是这种情况) – CJM 2010-03-01 14:14:00