2010-05-26 102 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" 

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