日期:2014-05-17  浏览次数:20414 次

新手求助!关于比较验证控件的使用
以下是我写的一段代码

<asp:TableRow ID="TableRow1" runat="server">
        <asp:TableCell HorizontalAlign="Right">新密码:</asp:TableCell>
        <asp:TableCell HorizontalAlign="Left"><input id="NewPwd" type="text"/></asp:TableCell>
      </asp:TableRow>

      <asp:TableRow ID="TableRow2" runat="server">
        <asp:TableCell HorizontalAlign="Right">确认新密码:</asp:TableCell>
        <asp:TableCell HorizontalAlign="Left"><input id="ConfirmPwd" type="text"/>
        <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator" 
ControlToCompare="NewPwd" ControlToValidate="ConfirmPwd"></asp:CompareValidator>
        </asp:TableCell>
      </asp:TableRow>


我的问题是客户端input控件能不能使用比较验证控件,如果能该怎么用呢?
还有一个问题是我该在什么情况下使用客户端的input控件和服务器控件。听说使用客户端控件能减轻服务器压力

------解决方案--------------------
1、很明显,asp:为前缀的都为服务器端控件,不是用在客户端验证的。客户端验证应该用js(jquery)进行验证。
2、http本身是无状态的,不能够记录用户的状态。服务器端控件只所以能够让你感觉客户端点击按钮后台响应,是因为viewstate这个隐藏字段记录了控件的信息。所以如果页面使用了大量的服务器端控件,比如gridview,会导致viewstate相当的庞大。从用户的角度来看,响应速度越快越好,因此应该尽量少的使用服务器端控件。
------解决方案--------------------
是客户端input控件能不能使用比较验证控件,如果能该怎么用呢?
你想比较什么?只要能够获取控件的值就可以比较,无论是客户端控件,还是服务器端控件?

还有一个问题是我该在什么情况下使用客户端的input控件和服务器控件。
能够使用客户控件就用客户端控件,比如检查一个值是否为空,如果是空值不能保存.这个验证可以在客户端做,也可以在服务器端做,那最好的办法是什么?当然是直接在客户端验证,客户端都验证不通过当然不需要提交到服务器端.