C# ASP.NET网格视图数据字段列格式设置不起作用
我对GridView列的格式有问题。 我有一个C# ASP.NET网格视图数据字段列格式设置不起作用,c#,sql,asp.net,gridview,C#,Sql,Asp.net,Gridview,我对GridView列的格式有问题。 我有一个电话号码,当前来自数据库(####)###-##### 但我希望格式是没有空格和括号的。我尝试过像DataFormatString=“{0:#####-######}”或将其转换为TemplateField并给出格式,但不起作用 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" > <Columns> <asp:Te
电话号码
,当前来自数据库(####)###-#####
但我希望格式是没有空格和括号的。我尝试过像DataFormatString=“{0:#####-######}”
或将其转换为TemplateField并给出格式,但不起作用
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField HeaderText="Phone Number">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%#
Bind("PhoneNumber") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server"
Text='<%# Bind("PhoneNumber", "{0:d}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这是在将列转换为模板字段之前:
<asp:BoundField DataField="PhoneNumber" HeaderText="Phone Number Home"
SortExpression="Phone" DataFormatString="{0:######-####}" HtmlEncode="false" />
Text='<%# Bind("PhoneNumber", "{0:d}") %>'
但一切都不起作用。我仍然得到这样的电话号码格式
(123)123-4567
格式是完全相加的,而不是减法的。要实现这一点,您需要公开一个去掉了非数字的值的版本,以便客户端格式化可以对其起作用。如果要在代码隐藏中动态绑定行,则应该在gridview的DataBind事件中格式化列
语义列格式仅在语义上使用绑定数据时有效,例如,在模板字段中声明尝试替换
文本属性:
<asp:BoundField DataField="PhoneNumber" HeaderText="Phone Number Home"
SortExpression="Phone" DataFormatString="{0:######-####}" HtmlEncode="false" />
Text='<%# Bind("PhoneNumber", "{0:d}") %>'
Text=''
与:
Text=''
使用。我不太明白我是如何尝试去除非数字的Rodata Bound的?你的意思是去掉括号是的,但是怎么做?我应该使用什么代码use@Haseeb.A当您从数据源中检索电话号码时,您应该去掉非数字字符并将其视为字符串,或者去掉非数字字符并将其视为整数。在任何一种情况下,您都可以应用格式。关于如何去掉C#中的值,有很多答案。输入字符串的格式不正确。我一直遇到这个错误,我甚至尝试了其他格式,但它本身并不适用。异常详细信息:System.FormatException:输入字符串的格式不正确。我已使用自定义格式说明符的引用编辑了我的答案。”“这是前面的东西看起来的样子,但它仍然给我错误。