2010-05-26 100 views
1

我想显示一个数字,作为字符串存储在数据集中,作为电话号码。我有一个绑定到一个值,但不会显示我作为一个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

回答

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,以便格式化程序知道如何处理值哟你正在发送它。我更喜欢在代码隐藏方面做这件事,因为有时候试图将所有内联事物塞进来让事情变得更加不明确。

+0

谢谢,它似乎我不得不先把它转换为int,这就是我没有做的事情 – NomadicDeveloper 2010-05-26 16:44:09

0

什么类型是价值?这似乎为我格式化确定:

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

的另一种方法是:

暗淡我作为整数= 5551234567 昏暗参考译文字符串= i.ToString(“(###)### - ####“)

ToString是我使用的快速方法。我所做的是在日eCommand的窗户,我这样做:

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

结果是:

"(555) 123-4567" 

所以我相信它的工作原理。祝你好运!