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> |