加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何从代码隐藏中清除所有表单字段?

发布时间:2020-12-16 03:44:33 所属栏目:asp.Net 来源:网络整理
导读:HTML有一个输入按钮类型,可以在一个步骤中将表单中的所有字段重置为初始状态: input type =“reset”... /. 是否有类似的简单方法从代码隐藏重置aspx页面的所有表单字段?或者是否需要使用TextBox1.Text = string.Empty,TextBox2.Text = string.Empty等逐个
HTML有一个输入按钮类型,可以在一个步骤中将表单中的所有字段重置为初始状态:< input type =“reset”... />.

是否有类似的简单方法从代码隐藏重置aspx页面的所有表单字段?或者是否需要使用TextBox1.Text = string.Empty,TextBox2.Text = string.Empty等逐个重置所有控件?

提前致谢!

更新:

上下文是一个简单的联系人/“向我们发送消息”页面,页面上有8个asp:TextBoxes(用户输入名称,地址,电话,电子邮件,消息等).然后他点击提交,代码隐藏中的Onclick消息处理程序向某个管理员发送一封电子邮件,用户填写的所有表单字段都应该清空,并在标签中收到通知(“Message sent blabla …” ).我希望清除表单字段以避免用户再次单击“提交”并再次发送相同的消息.

解决方法

您只需要为每种类型的控件编写一个fork,除非其中一个控件有一些特殊的东西需要重置它.

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

    var dropDownList = control as DropDownList;
    if (dropDownList != null)
        dropDownList.SelectedIndex = 0;
    ...
}

添加您询问如何清除控件甚至是埋藏的控件.要做到这一点,你应该创建一个递归例程,如下所示:

private void ClearControl( Control control )
{
    var textbox = control as TextBox;
    if (textbox != null)
        textbox.Text = string.Empty;

    var dropDownList = control as DropDownList;
    if (dropDownList != null)
        dropDownList.SelectedIndex = 0;
    ...

    foreach( Control childControl in control.Controls )
    {
        ClearControl( childControl );
    }
}

所以,你可以通过传递页面来调用它:

ClearControls( this );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读