Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET网格视图数据字段列格式设置不起作用_C#_Sql_Asp.net_Gridview - Fatal编程技术网

C# ASP.NET网格视图数据字段列格式设置不起作用

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

我对GridView列的格式有问题。 我有一个
电话号码
,当前来自数据库(####)###-##### 但我希望格式是没有空格和括号的。我尝试过像
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:输入字符串的格式不正确。我已使用自定义格式说明符的引用编辑了我的答案。”“这是前面的东西看起来的样子,但它仍然给我错误。