我正在尝试将存储在数据集中的数字显示为字符串,作为电话号码。我有一个标签绑定到一个值,但不显示我作为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
答案 0 :(得分:4)
我更喜欢在我的代码隐藏中进行数据绑定:
<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
,以便格式化程序知道如何处理发送它的值。我更喜欢在代码隐藏中执行此操作,因为有时候尝试将所有内联连接起来会使事情变得不那么明确。
答案 1 :(得分:0)
什么类型的价值?这似乎对我来说格式正常:
int phone_num = 1231231234;
string f = String.Format("{0:(###) ###-####}", phone_num);
答案 2 :(得分:0)
另一种方法是:
Dim i as Integer = 5551234567 Dim s As String = i.ToString(“(###)### - ####”)
ToString是我使用的快捷方式。我所做的是在eCommand窗口中我这样做了:
? 5551234567.ToString("(###) ###-####")
结果是:
"(555) 123-4567"
所以我相信它有效。祝你好运!