【发布时间】:2012-10-06 13:12:27
【问题描述】:
在 DetailsView 中,其中一个控件是名为 PrimaryPhone 的 TextBox。
PrimaryPhone 在 ASP:literal 控件中使用 string.Format 进行格式化。
数据在数据库中是这样存储的:
9781231234
它使用 Iif 函数来处理 10 位数字条目的格式。
<asp:TemplateField HeaderText="Primary Phone:" SortExpression="PrimaryPhone">
<EditItemTemplate>
<asp:TextBox ID="TextBoxPrimaryPhoneEdit" runat="server" Text='<%# Bind("PrimaryPhone") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBoxPrimaryPhoneInsert" runat="server" Text='<%# Bind("PrimaryPhone") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Literal ID="PrimaryPhoneLiteral" runat="server"
Text='<%# iif(Len(Eval("PrimaryPhone"))=10,
string.Format("{0:(###) ###-####}", Int64.Parse(Eval("PrimaryPhone").ToString())),
Eval("PrimaryPhone")) %>' />
</ItemTemplate>
<ItemStyle ForeColor="Blue" />
</asp:TemplateField>
我们想从 VB.Net 代码隐藏文件中格式化 PrimaryPhone 而不是 Iif 函数,因为电话号码可能是:
10 digits
7 digits
有些电话号码也不见了。
我们希望根据输入到 PrimaryPhone DetailsView 文本框中的数字长度来格式化它。我们希望为此使用 Case 语句。
是否还可以验证 EditItemTemplate 和 InsertItemTemplate 中的电话号码条目,并在电话号码不是 10 位或 7 位数字时显示 Ajax 验证标注扩展程序?
您能否显示从代码隐藏文件中格式化 PrimaryPhone 所需的编码?
【问题讨论】:
-
您在同一个问题中提出了两个不同的问题,这不适合 StackOverflow。考虑为验证部分打开另一个问题。
-
抱歉,有两个问题。下次我会更加小心。
标签: asp.net vb.net formatting validation code-behind