代码之家  ›  专栏  ›  技术社区  ›  Giffyguy

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

  •  0
  • Giffyguy  · 技术社区  · 14 年前

    当前表单是 here . 它还没有完成,只有两个选择会起作用。

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

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

    3 回复  |  直到 14 年前
        1
  •  2
  •   Oleks    14 年前

    我会用 Response.Redirect(Request.RawUrl) 方法从服务器端重置窗体数据。

    一个小小的解释:这是 PRG design pattern

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

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

        2
  •  2
  •   Jason Webb    14 年前

    在表单上的pageload事件中,需要添加simalar:

    if (IsPostBack)
    {
       //Proccess the order here
    
       ProductOption.SelectedIndex = 0;
    }
    

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

        3
  •  2
  •   Thomas    14 年前

    最简单的方法是递归函数,它派生控件类型

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

    您可以在load事件中通过传递 this . (这意味着您希望重置多个控件或控件的小列表)。