1

我正在尝试将一个数字显示为电话号码,该数字作为字符串存储在数据集中。我有一个绑定到值的标签,但不显示我作为 arg 传递的格式:

<asp:Label ID="lbl005108002" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "phone number", "{0:(###) ###-####}") %>'></asp:Label>

作为测试,我尝试将格式化的字符串传递到数据项中,但这也不起作用。为了使用这个功能,我还需要做些什么吗?

m_Row("phone number") = String.Format("{0:(###) ###-####}", value)

两种情况下的值都显示为:04152543926

4

3 回答 3

4

我更喜欢在我的代码隐藏中进行数据绑定:

<asp:Label ID="lbl005108002" runat="server" Text="" OnDataBinding="lbl005108002_DataBinding"></asp:Label> 

在代码隐藏中:

protected void lbl005108002_DataBinding(object sender, System.EventArgs e)
{
    Label lbl = (Label)(sender);
    lbl.Text = String.Format("{0:(###) ###-####}", (int)(Eval("phone number")));
}

我认为关键是转换为int以便格式化程序知道如何处理您发送的值。我更喜欢在代码隐藏中这样做,因为有时试图将所有内容都塞进内联会使事情变得不那么明确。

于 2010-05-26T16:00:36.440 回答
0

价值是什么类型?这对我来说似乎格式可以:

     int phone_num = 1231231234;
     string f = String.Format("{0:(###) ###-####}", phone_num);
于 2010-05-26T16:01:23.240 回答
0

另一种方法是:

Dim i as Integer = 5551234567 Dim s As String = i.ToString("(###) ###-####")

ToString 是我使用的快速方法。我所做的是在 eCommand 窗口中执行此操作:

? 5551234567.ToString("(###) ###-####")

结果是:

"(555) 123-4567"

所以我确信它有效。祝你好运!

于 2010-05-27T16:21:33.627 回答