关于asp.net:验证、页面事件和ViewState

Validation, Page events and ViewState

我在页面上有两个按钮。一个按钮负责与注册有关的文本字段验证,另一个负责与登录有关的文本字段验证。问题是当我按下其中一个按钮时,它会刷新页面并显示所有无效字段(我不希望注册字段是当用户按下登录按钮时由RequiredFieldValidator检查)。

所以我做了什么我使用了初始化事件..来防止这种情况发生...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    static bool oneButtonPressed;
  protected void Page_Init(object sender, EventArgs e)
    {
        if (oneButtonPressed)
        {
            REgisterAge.Visible = false;
            RegisterAge2.Enabled = false;
            RegisterAge3.Enabled = false;
            RegisterPassword.Enabled = false;
            RegisterPassword2.Enabled = false;
            RegisterEmail.Enabled = false;
            RegisterEmail2.Enabled = false;    
        }
        else
        {
            EntryPasswordRequiredFieldValidator10.Enabled = false;
            EntryNameEntryRequiredFieldValidator9.Enabled = false;



        }

    }

    protected void entry_Click(object sender, EventArgs e)
    {
        oneButtonPressed = true;
    }
    protected void submitButton_Click(object sender, EventArgs e)
    {
        oneButtonPressed = false;
    }
}

这里的问题是,当页面被回发并再次加载时,布尔值总是错误的。我记得我的老师说过我可以使用 ViewState 或静态变量/方法来保存我的值。我在这里错了吗..我必须使用 ViewState 吗?


为什么不为相关提交按钮的每个字段分配一个验证组。
不同的验证组将确保验证不会在不相关的表单上触发。

1
2
     </asp:TextBox>
     </asp:LinkButton>