清空asp.net表单中的所有字段

4
我有一个 asp.net 的表单。在这个表单中,我想清除所有输入的数据,例如 textboxdropdownlist 等等。那么如何做到不用一个个地去设置每个文本框的值呢?
就像 TextBox1.Text=""; 这样一样。如何清除表单中的所有值?

2
可能重复:https://dev59.com/n2865IYBdhLWcg3wd-ge - Martin Buberl
清除每个控件分别的问题究竟是什么? - Thibault Witzig
我需要一个简单的东西,只需重定向到页面即可。 - kbvishnu
3个回答

21

可以使用这个函数。

private void ClearInputs(ControlCollection ctrls)
{
    foreach (Control ctrl in ctrls)
    {
        if (ctrl is TextBox)
            ((TextBox)ctrl).Text = string.Empty;
        else if (ctrl is DropDownList)
            ((DropDownList)ctrl).ClearSelection();

        ClearInputs(ctrl.Controls);
    }
}

然后像这样调用它

ClearInputs(Page.Controls);

或者

重定向到同一页

Response.Redirect(Request.Url.PathAndQuery, true);

7
您可以在客户端使用重置按钮:

<input type="reset" />

另一种选择是将重定向到当前网址:
Page.Response.Redirect(Page.Request.Url.RawUrl)

这种技术可以将用户重定向到当前页面,就像他刚到达该页面一样。但是,如果您的页面使用了一些回发(因为视图状态将被重置),则只有在没有回发的情况下才能实现。

至少,您可以“遍历”整个控件树,并清除控件的值,例如基于控件类型进行选择。


0

您可以使用页面和子控件的Controls属性递归遍历控件树。对于每个控件,您可以使用以下代码重置它:

if (ctl is ITextControl)
    ((ITextControl)ctl).Text = "";

以及复选框等的变体。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接