我有一个GridView里面包含了一个TextBox,用来显示一列NO号,并且用户可以自己输入。当输入的时候我想让它只能输入半角的数字,应该怎么做呢?应该在什么事件里面写呢?相关的html代码是这样的:
<asp:GridView ID="gridViewSozai" runat="server" BackColor="White" >
<asp:TemplateField HeaderText="パーツNO">
<ItemTemplate>
<asp:TextBox ID="txtSpartsNo" Width="50px" runat="server" Text='<%# Bind("SpartsNo") %>'></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtNewSpartsNo" Width="50px" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</asp:GridView>
只不过这个你要照顾到是否按下了组合键,比如Ctrl+C等等
function isWrongNumber(s)
{
if (s.length > 0)
{
var re = /^[0-9]*(\d*)?$/;
if (!re.test(s)) {
alert("请输入正确的天数!");
return false;
}
} else {
alert("请填写天数!");
return false;
}
return true;
} <input id="txtDaysNeed" runat="server" maxlength="3" onblur="if(!isWrongNumber(this.value)){this.value='';}" type="text" />
将字符串中的全角字符转换为半角//判断字符是否英文半角字符或标点
//32 空格
//33-47 标点
//48-57 0~9
//58-64 标点
//65-90 A~Z
//91-96 标点
//97-122 a~z
//123-126 标点
public static bool IsBjChar(char c)
{
int i = (int)c;
return i >= 32 && i <= 126;
} /// 判断字符是否全角字符或标点
/// 全角字符 - 65248 = 半角字符
/// 全角空格例外 public static bool IsQjChar(char c)
{
if (c == '\u3000')
{
return true;
}
int i = (int)c - 65248;
if (i < 32)
{
return false;
}
else
{
return IsBjChar((char)i);
}
} /// 将字符串中的全角字符转换为半角
public static string ToBj(string s)
{
if (s == null || s.Trim() == string.Empty)
{
return s;
}
else
{
StringBuilder sb = new StringBuilder(s.Length);
for (int i = 0; i < s.Length; i++)
{
if (s[i] == '\u3000')
{
sb.Append('\u0020');
}
else if (IsQjChar(s[i]))
{
sb.Append((char)((int)s[i] - 65248));
}
else
{
sb.Append(s[i]);
}
}
return sb.ToString();
}
}
这个好像是WINFORM里面可以用的吧……