asp.net - ASP TextBox 支持带有 . (点)
问题描述
我有一个 ASP 页面,该页面中有一个 TextBox。此 TextBox 具有 Double 类型,并且在后端代码中具有 Decimal 类型。
这是文本框。
<asp:TableCell>
<asp:TextBox ID="txtPremium" runat="server" Width="90px"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvPremium" runat="server" ControlToValidate="txtPremium"
ErrorMessage="Required" ForeColor="Red" Display="Dynamic" ValidationGroup="Insert"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="txtPremium_Integer" runat="server" ValidationGroup="Insert"
ControlToValidate="txtPremium" Display="Dynamic" ErrorMessage="'Premium' must be decimal"
ForeColor="Red" Operator="DataTypeCheck" SetFocusOnError="true" Type="Double" />
</asp:TableCell>
在 UI 中,当我尝试将值添加到该文本框中时,例如 10.0(带点),文本框错误消息会出现。当我尝试输入像 10,0 (with a comma) 这样的值时,它被接受了。我需要能够输入一个点。
我尝试将文本框的类型更改为货币,但出现同样的错误。文本框的类型列表中没有其他相关类型可用。
为了完整起见,这里是我后面代码中文本框的声明。
Dim _premium As Decimal = Decimal.Parse(txtPremium.Text)
我不确定我可以为文本框做些什么来接受点。
有任何想法吗?
解决方案
嗨比较验证器用于比较两个字段之间的值,例如密码和匹配密码
如果您想验证十进制,请使用正则表达式验证器和接受十进制的表达式。将以下表达式中的 2 替换为允许的最大十进制值 ^\d+.\d{0,2}
<asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ID="txtregpre" ValidationGroup="Insert"
ControlToValidate="txtPremium"
ValidationExpression="^\d+\.\d{0,2}$"></asp:RegularExpressionValidator>
推荐阅读
- r - 读取excel表格
- javascript - 表单提交后重定向到感谢页面并在感谢页面上发布用户名
- vue.js - 验证
可以隐藏按钮但不能显示 - flutter - 如何访问当前页面小部件
- list - 如何从 haskell 中的列表中删除?
- typescript - Typescript 项目引用外部构建文件夹路径别名解析
- google-chrome-extension - 如何启用浏览器的密码管理器以在 Web 扩展中使用?
- postgresql - 如何正确创建触发器以更新同一表中的列
- plantuml - 在 PlantUML 对象的标题中添加换行符会更改字体
- spring-boot - Spring boot - application.properties:获取 Cassandra 数据时出错:java.lang.NullPointerException