【问题标题】:Formatting and validating an asp:Literal control inside a DetailsView格式化和验证 asp:DetailsView 中的文字控件
【发布时间】: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


【解决方案1】:

在 CodeBehind 文件中编写一个公共静态函数并从 aspx 页面调用它,并传递电话值。

(我在这里使用 C# 代码,但你应该明白)

public static string FormatPhoneNumber(string phoneNumber)
{
    // do your conditional formatting here
    return result;
}

在您的 ItemTemplate 中:

<ItemTemplate>
    <asp:Literal ID="PrimaryPhoneLiteral" runat="server" 
         Text='<%# FormatPhoneNumber(Eval("PrimaryPhone").ToString()) %>' />
</ItemTemplate>

【讨论】:

  • 感谢您的快速回复和代码示例来解决我们的问题。
猜你喜欢
  • 2014-06-14
  • 2018-09-18
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 2011-09-13
  • 1970-01-01
  • 2011-01-26
相关资源
最近更新 更多