在我的数据库中,我有一个表,其中包含货币代码,例如:
USD
GBP
CAD
AUD
JPY
EUR
ISK
PLZ
TRL ... and more
在我的asp.net应用程序中,我有一个文本框供用户输入货币。
<asp:TextBox ID="txtCurrency" runat="server" Text="USD"></asp:TextBox>
如何强迫用户只输入数据库中的选项?
如果必须,您可以使用正则表达式验证器控件:
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="txtCurrency"
ValidationExpression="^(USD|GBP|CAD|AUD|JPY|EUR|ISK|PLZ)$"
Display="Static"
EnableClientScript="false"
ErrorMessage="Enter a valid code"
runat="server"/>
这将像这样填充在服务器端,但格式类似于上面的正则表达式:
RegularExpressionValidator1.ValidationExpression = GetValuesFromDb();
这是将值格式化为正则表达式的方式:
var cs = new List<string> {"USD", "GBP", "CAD", "AUD", "JPY", "EUR", "ISK", "PLZ"};
var csRegex = "^({0})$";
Console.Out.Write(string.Format(csRegex, string.Join("|", cs)));
但是从UI的经验来看,我觉得下拉菜单或UI自动完成功能(如其他人建议的那样)会更适合。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句