走过路过不要错过:一个狂搞怪的数据验证问题,请教!
请看以下代码:
我想让编号输入的数据范围限制在4-7位的数字或大写字母。
在输入的时候,验证一切正常。
在查看时或编辑Datagrid中的第一条记录时,此字段设定为Readonly=true了,但提交或返回时,数据验证却报错:请输入4-7位数字或大写字母的组合,而编辑或察看其他记录却正常,我百思不得其解,请高手点解!
<td width="36%"><div align="right">编号:</div></td>
<td width="23%">
<asp:textbox ID="txtBianHao" ReadOnly="false" runat="server" TextMode="SingleLine" width="100" />
</td>
<td width="41%">
<asp:requiredfieldvalidator ControlToValidate="txtBianHao" runat="server" ErrorMessage="请输入值!" ForeColor="lightgreen" Display="Static">
</asp:requiredfieldvalidator>
<asp:RegularExpressionValidator
ControlToValidate="txtBianHao"
ValidationExpression="^[A-Z0-9]{4,7}$"
Display="Static"
ErrorMessage="请输入4-7位数字或大写字母的组合"
runat="server"/>
</td>
对了在察看和编辑时,此文本框中内容是从DATAGRID中付过来的:
txtBianHao.Text=e.Item.Cells[nColBianHaoIndex].Text;
我试了一下,如果直接付值就不会有此现象,例:
txtBianHao.Text="1000001";
且如果把验证改为ValidationExpression="^.4,7}$",好像也没有此现象了。
请教,这个问题如何解决?答即给分!