数据集可格式化行

本文关键字:格式化 数据集 | 更新日期: 2023-09-27 18:01:18

嗨,我有一个数据集,其中包含一个表从sql检索。它有"产品"列和"价格"列。我得到了数据集并绑定到网格。现在我想使网格的价格列格式化为小数点后2位(验证)。有什么想法吗?我不应该改变选择查询,因为它是一个SP,它给了我数据集。

数据集可格式化行

如果您既不想使用绑定字段也不想更改选择查询,那么我知道您有两个选项可以完成此操作。首先,在使用任何循环绑定到网格之前,在数据集中做值更改,第二个选项是在rowdataboundevent上更改网格中的值…

 foreach(dataRow[] dr in dataset.tables[your table index])
 {
  // max. two decimal places
   string val =   String.Format("{0:0.##}",Convert.ToDecimal(dr[column index])); 
   dr[column index] = val;
 }

通过改变Grid中的值:

  protected void mygrid_OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            mygrid.cell[cell index].Text =   String.Format("{0:0.##}",Convert.ToDecimal(dataset.tables[table index][column index][Row Index]));               
        }
    }

现在如果你想为数据插入和更新应用验证,你可以在你的textBox…

   <EditItemTemplate>
  <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"     ErrorMessage="RegularExpressionValidator"
        ControlToValidate="TextBox1" ValidationExpression="^'d{1,2}([.]'d{1})$"> ValidationGroup="MyVal"</asp:RegularExpressionValidator>

现在你必须应用

ValidationGroup = " MyVal "

试试这个:

<asp:BoundField DataField="Price" DataFormatString="{0:C2}" HeaderText="Price" />

您需要添加"DataFormatString"属性到绑定字段,如上所示。这将货币值格式化为小数点后两位。查看这篇文章。

DataField指的是数据表中列的名称,而HeaderText指的是将在网格中显示为列标题的文本。