数据集可格式化行
本文关键字:格式化 数据集 | 更新日期: 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指的是将在网格中显示为列标题的文本。