数据集数据表格式化行

时间:2011-07-03 19:45:45

标签: c# asp.net

您好我有一个数据集,其中包含从sql检索的表。它有“产品”列和“价格”列。我得到了数据集并绑定到网格。现在我想将网格的价格列格式化为2位小数(验证)。请问任何想法。 我不应该更改选择查询,因为它是一个给我数据集的SP。

2 个答案:

答案 0 :(得分:1)

如果您既不想使用Bound-Field也不想更改select查询,那么我知道您还有两个选项可以完成此任务。首先,在使用任何循环绑定到网格之前对数据集进行值更改,第二个选项是RowDataBound事件中网格中的更改值...

通过更改数据集中的值:

 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;
 }

通过更改网格中的值:

  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中应用RegularExpressionValidator ...

   <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”

也适用于您将执行其编辑和更新的点击控件..

答案 1 :(得分:0)

试试这个:

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

您需要将“DataFormatString”属性添加到绑定字段,如上所示。这会将货币值格式化为两位小数。 Check this article

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