如何把asp.net 中文本框控件的text属性设置为int型?

asp.net文本框控件的text属性默认为字符串型,能不能把它设置为int型,使它只能接受int型数据?
我编程时需要调用一个dll,那个dll要求文本框中的数据为int。

这个建议是js来处理
引用:
在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字:
<asp:TextBox ID="TextBox" runat="server" OnKeyPress="if(((event.keyCode>=48)&&(event.keyCode <=57))||(event.keyCode==46)) {event.returnValue=true;} else{event.returnValue=false;}" MaxLength="15"> </asp:TextBox>
注意:如果不允许输入小数点去掉“event.keyCode==46”这种情况
或者:<asp:TextBox ID="TextBox" runat="server" onkeyup='value=value.replace(/[^d]/g,'') ' onbeforepaste='clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))' MaxLength="15"> </asp:TextBox>
  类似方法一:
if(e.KeyChar!=8!Char.IsDigit(e.KeyChar)e.KeyChar!='.'){ e.Handled = true; } 
  类似方法二:
if ((e.KeyChar < 48 || e.KeyChar > 57) (e.KeyChar != 8) e.KeyChar!='.'){ e.Handled = true; }
  类似方法三:
if (!Char.IsNumber(e.KeyChar) !Char.IsPunctuation(e.KeyChar) !Char.IsControl(e.KeyChar)){ e.Handled = true;}
  解释:其中e.KeyChar是键盘输入的键对应的字符,IsDigit函数可以判断是否为0到9的数字,Chr(8)
  为退格键,当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容也就不会发生变化
  如果文本需要输入小数的话,就要能够输入小数点.,而且小数点只能输入一次
  //IsNumber:指定字符串中位于指定位置的字符是否属于数字类别
  //IsPunctuation:指定字符串中位于指定位置的字符是否属于标点符号类别
  //IsControl:指定字符串中位于指定位置的字符是否属于控制字符类别
  注意: 这里是在输入时便限制其他类型的字符被写入 TextBox;
  就是说你不输入正确或你输入的不是数字我就不让你做其他任何工作!
  霸道吧? 呵呵, 如果你不喜欢这种方式, 下面有几种允许用户先随便输入,
  然后再判断, 如果不是整数, 我给你来个警告, 告诉你输入类型不正确, 请重新输入!
  ---不过在我看来, 这种做法有些不道德, 等着你犯错.
  类似方法四: 正则表达式.
  string regExp  =  /^[1-9][0-9]*$/;  
  if(!regExp.test( this.txtLogin.Text))  
  {  
    alert(只能是数字!);  
    this.txtLogin.clear();  
    return ; 
  }
  类似方法五: 最没有想象力的(原始)判断方法---一个一个一个一个字符判断还需要加上个for循环和n个if:
  function isInt(a)  
{ var b = "0123456789";   
  var i;
for  (i = 0; i <a.length; i++)  
   {     
     var c = a.charAt(i);  
     if (b.indexOf(c)  ==  -1) return false;  
   }  
   return true;  
 }追问

你说的很有道理。能不能在刚开始设计时就把TextBox.Text的类型设置为int呢?

追答

不能,除非你自己重写后暴露另外一个属性

因为Text的中文意思就是文本

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-08
您好:

你在要提交的时候 判断一下文本框里面的值 是不是int型的

Js的话: 用 isNaN(文本框的.value) 判断它是不是纯数字
后台的话: 你用
int i = 0;
bool b = int.TryParse(文本框的.value, out i) ;

如果 b 是True 的话 他就是int型的 而 i 就是 等于 (文本框的.value,
如果 b 是False 就不是了int型了~~
第2个回答  2011-08-09
写程序的时候把string 类型强制转换int就可以啦!
相似回答