バージョン等
ASP.net
C#
VisualStudio2019
Windows11
.NET 4.8
前提
DataTableにデータを設定→DataTableをGridViewにバインドという流れでデータを表示します。
DataTableに設定される値プラスまたはマイナスの数値です。マイナスの場合は-1234といった形でDataTableに設定される想定です。
実現したい動き
asp:GridViewのBoundFieldのDataFormatStringを使用して、以下のような表示がしたいです。
¥-1,234
または¥マークを除去した以下の表示
-1,234
現状
以下のような表示になってしまいます。
-¥1,234
ソースコード
HTML
1<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TEST.WebForm1" %> 2 3<!DOCTYPE html> 4 5<html xmlns="http://www.w3.org/1999/xhtml"> 6<head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 8 <title></title> 9</head> 10<body> 11 <form id="form1" runat="server"> 12 <asp:GridView ID="Grd" runat="server" AutoGenerateColumns="False" > 13 <Columns> 14 <asp:BoundField DataField="ID" /> 15 <asp:BoundField DataField="KINGAKU1" DataFormatString="{0:C}" HtmlEncode="false" /> 16 </Columns> 17 </asp:GridView> 18 </form> 19</body> 20</html>
C#
1using System; 2using System.Collections.Generic; 3using System.Data; 4using System.Linq; 5using System.Web; 6using System.Web.UI; 7using System.Web.UI.WebControls; 8 9namespace TEST 10{ 11 public partial class WebForm1 : System.Web.UI.Page 12 { 13 protected void Page_Load(object sender, EventArgs e) 14 { 15 Grd.Columns[0].HeaderText = "ID"; 16 Grd.Columns[1].HeaderText = "KINGAKU1"; 17 18 DataRow dr; 19 20 DataTable dt = new DataTable("TEST"); 21 dt.Columns.Add("ID", typeof(int)); 22 dt.Columns.Add("KINGAKU1", typeof(double)); 23 24 // 金額計算 25 var a = 1000 + (-5500) + (-1000); 26 27 dr = dt.NewRow(); 28 dr["ID"] = 1; 29 dr["KINGAKU1"] = a; 30 31 dt.Rows.Add(dr); 32 33 Grd.DataSource = dt; 34 Grd.DataBind(); 35 } 36 } 37}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/18 11:06
退会済みユーザー
2021/11/18 11:22
2021/11/18 12:35
退会済みユーザー
2021/11/19 01:56