【问题标题】:Dataset datatable formatting rows数据集数据表格式化行
【发布时间】:2011-07-04 16:20:58
【问题描述】:

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

【问题讨论】:

  • 好的,谢谢。我还没有开始。还有一个问题,我也必须验证。那怎么办呢。我的意思是说它是一个可编辑的网格,所以一旦在保存时完成编辑,它必须验证 2 位小数,也需要四舍五入。

标签: c# asp.net


【解决方案1】:

如果您既不想使用 Bound-Field 也不想更改选择查询,我知道您还有两个选项可以完成此操作。首先是,在使用任何循环绑定到网格之前在数据集中进行值更改,第二个选项是在 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;
 }

通过改变 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]));               

        }
    }

现在,如果您想为数据插入和更新应用验证,您可以在您的文本框应用 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"

还可以在单​​击控件上执行编辑和更新..

【讨论】:

    【解决方案2】:

    试试这个:

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

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

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

    【讨论】:

    • 感谢您的帮助,但我不应该按照标准在设计页面中使用 boundfield。任何方式都会推荐。如果有其他方法可以实现,请告诉我
    • Check this article。让我知道您是否能够实现您的愿望。
    • @sam。为了确保用户以某种特定格式输入输入,您需要将绑定字段转换为模板字段。查看上面的文章。
    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多