主题:  蓝鲸老大进来,问个Form表单问题!

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#12004/11/15 16:29:51
自己做了个控件,内容是网页头和登录部分。

登录那里放了一个用户名文本输入控件、一个密码文本输入控件,外加两个RequiredFiledValiditor控件防止不能为空。

然后在每个页面调用这个网页头控件。
其他都没有问题,可是……在有表单(比如注册页register.aspx)的网页里。
同样放置了其他的RequiredFiledValiditor控件,用来防止空用户名注册等。

问题出来了。一点提交按钮,奶奶的韭菜花,网页头上的登录匡里,用户名和密码提示不能为空,必须输入,我晕,关他屁事……

然后我就在网页头登录那里套了一个<Form runat="server"></form>
另外又在注册表格外套了一个<Form runat="server"></form>

我晕,提示一个网页只能有一个<Form runat="server"></form>。哭死。
考虑注册表格外那个直接用老表单,不加runat="server",又提示RequiredFiledValiditor必须放在runat="server"的Form里,哭死了。这可怎么办?



老刀把子

职务:普通成员
等级:1
金币:0.0
发贴:207
#22004/11/15 16:53:27
可以不用那个控件,到后台去验证它是不是空



Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#32004/11/15 17:34:33
可以呀,其实可以直接javascript验证的,不过不爽,想知道用他又能解决的方法.



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/11/15 19:55:59
控件调用进来,这些文本框和验证框都属于同一表单里,会引起冲突。
解决办法,一种方法是:建议你表头和登录框分做成二个控件,一个页面不要用二个提交内容,如果一定需要,另一个可用手工判断。
另一种方法是,把EnableClientScript属设为false,禁止客户端验证。
这样:
ctrlLogin.SetVaildEnabled(false);    // 在控件类中设置该方法,用以使验证控件Enabled为False
if (Page.IsVaild)
{
    //更新数据
}
else
{
    return;
}
ctrlLogin.SetVaildEnabled(true);    // 再把控件高为正常

不过要用登录控件控制内部表有些不容易

建议登录手工方法验证,也不麻烦。验证控件其实就是实现js功能,服务端验证与手工验证差不多


非常大鱼

Lukiya

职务:普通成员
等级:1
金币:0.0
发贴:59
#52004/11/16 0:34:52
hi
没办法,也只好老办法验证了。