我们使用 string.Format("{0:(###) ###-####}" 在 DetailsView 中显示格式化的电话号码。电话号码的示例是:
(516) 123-4567
<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>
当电话号码正好是 10 个号码时,它的格式很好,它允许用户编辑电话。我们遇到的问题是当用户删除电话号码并尝试单击更新按钮时。即使数据库表列确实允许空值,但在用户在 TextBox 中键入内容之前,不会保存数据。
我在编码中犯了错误吗?我们希望以这种方式设置它,以防用户在单击更新按钮之前清除手机文本框。