日期:2014-05-19  浏览次数:20385 次

验证控件使用问题
有一个登录页面.
两个登录面板.一个是普通用户,另一个是高级用户.
每个登录面板有两个textbox.我用了四个RequiredFieldValidator空间来验证是否有输入.

可是问题就出来了.因为只能选择一个用户类型登录,要么普通用户,要么高级用户.
要是选择了普通用户登录,那么高级用户的那两个textbox肯定是不能输入值的.
但如果没有值.RequiredFieldValidator控件就会提示..

请问这个问题应该怎么解决..在不改变两个登录面板共存的前提下.即两个登录面板要在同一个页面里..

谢谢

------解决方案--------------------

我建议你用一个dropdownlist(里面有两个选项--高级||普通)
然后下面有两个textbox,不可以吗》?
------解决方案--------------------
三个控件方便,而且也不会出现你的问题
------解决方案--------------------
标准答案来了,你登录的时候应该是要按按钮吧,本来应该是:
<asp:Button id= "Button1 " runat= "server " Text= "Button " > </asp:Button>
对不对?
好了,你现在加上一个属性CausesValidation设置为False,像这样:
<asp:Button id= "Button1 " runat= "server " Text= "Button " CausesValidation= "False "> </asp:Button>
然后双击这个按钮,写事件:

private void Button1_Click(object sender, System.EventArgs e)
{
//验证对应控件
UsernameFieldValidator1.Validate();
PasswordFieldValidator1.Validate();

//如果各个验证控件验证通过,则添加进程日志信息
if (UsernameFieldValidator1.IsValid && PasswordFieldValidator1.IsValid)
{
Response.Write( " <script language=javascript> ");
Response.Write( "window.alert( '验证通过,检索成功! ') ");
Response.Write( " </script> ");

//这里放将填写的数据添加到数据库中


}
}

看懂了吗?我四个验证控件中我只触发了两个


------解决方案--------------------
当用户选择不同类型的用户时(普通,高级),用js实现控制显示不同的内容
------解决方案--------------------
用两组验证控件,一组高级用户,一组普通用户使用,设置ValidationGroup属性即可。
提交按钮动态设置ValidationGroup属性。
------解决方案--------------------
03还是05

05通过设置ValidationGroup属性可以解决
03干脆自己用js写验证算了,也不麻烦