我正在尝试显示一个数字,该号码以字符串和电话号码存储在数据集中。我有一个与值结合的标签,但没有显示我作为arg的格式:

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

作为测试,我试图将编式的字符串传递到Dataitem中,但这也不起作用。为了使用此功能,我还需要做其他事情吗?

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

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

有帮助吗?

解决方案

我更喜欢在我的CodeBehind中进行数据指标:

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

在CodeBehind中:

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

我认为关键是 int 因此,格式化者知道如何处理您发送的价值。我更喜欢在CodeBehind中执行此操作,因为有时试图填补所有内联的一切都会使事情变得不太明确。

其他提示

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

     int phone_num = 1231231234;
     string f = String.Format("{0:(###) ###-####}", phone_num);

另一种方法是:

dim i as Integer = 55551234567 dim s string = i.tostring(“(###)### - ####”)

Tostring是我使用的快速方式。我所做的是在ecommand窗口中,我做到了:

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

结果是:

"(555) 123-4567"

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top