日期:2014-05-18  浏览次数:20768 次

关于自定义验证控件
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
  {
  string name = TextBox1.Text.Trim();
  int n = name.Length;
  args.IsValid = true;
  for (int i=0; i<= n; i++) {
  string midstr = name.Substring(i,n);
  char str = Convert.ToChar(midstr);
  if ((int)str> 255) {
  CustomValidator1.Text = "用户名不能包含中字";
  args.IsValid = false;
  break;
  }
提示错误:字符串的长度只能为一个字符。

------解决方案--------------------
参考下面修改
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
string name = TextBox1.Text.Trim();
int n = name.Length;
args.IsValid = true;
for (int i=0; i<= n; i++) {
//string midstr = name.Substring(i,n);
char str = name[i];
if ((int)str> 255) {
CustomValidator1.Text = "用户名不能包含中字";
args.IsValid = false;
break;
}
------解决方案--------------------
应该是i<n而不是i<=n,否则到i=n的时候就出错了。index是从0而不是1开始的。