如何重置我的ASP.NET字段中的值?

时间:2010-04-22 00:06:27

标签: asp.net post webforms persistence form-submit

目前的表格是here。它不完整,只有几个选项可以使用。

选择“Image CD”,然后选择任何分辨率,然后单击“添加到订单”。订单将记录在服务器端,但在客户端,我需要将产品下拉菜单重置为“{select}”,以便用户知道他们需要选择其他产品。这与子选择消失的想法是一致的。

我不知道我是否应该使用ASP回发或标准表单提交,并且当用户向订单添加项目时,大多数字段都需要重置。

3 个答案:

答案 0 :(得分:2)

在表单上的页面加载事件中,您需要添加类似于此的内容:

if (IsPostBack)
{
   //Proccess the order here

   ProductOption.SelectedIndex = 0;
}

这将允许您处理订单,但随后从订单表单开始。

答案 1 :(得分:2)

最简单的方法是一个递归函数,用于控制控件类型

private void ResetControls( Control control )
{
    if ( control == null)
        return;

    var textbox = control As TextBox;
    if ( textbox != null )
        textbox.Text = string.Empty;

    var dropdownlist = control as DropDownList;
    if ( dropdownlist != null )
        dropdownlist.SelectedIndex = 0; // or -1

    ...

    foreach( var childControl in controlControls )
        ResetControls( childControl );
}

您可以通过传递this在Load事件中调用此函数。 (假设您想要重置多个控件或一小组控件)。

答案 2 :(得分:2)

我使用Response.Redirect(Request.RawUrl)方法从服务器端重置表单数据。

一点解释:这是PRG design pattern

  

用于帮助避免某些重复   表单提交并允许用户代理   用更直观的表现   书签和刷新按钮。

此问题的解决方法: 例如,必要的数据可以存储在Session中。这意味着我们使用第一个POST获取数据,将其放入存储,执行重定向并将其恢复。