如何影响c#中动态创建的标签文本的格式

本文关键字:创建 动态 标签 格式 文本 何影响 影响 | 更新日期: 2023-09-27 18:18:04

我认为这应该是一个相当容易回答的问题,但我似乎不能弄清楚。我在c#中从sqldatasource向标签添加文本。所有这些都可以工作,但我希望能够格式化文本。我想1)能够将格式更改为0.00(而不是一串小数),我也希望能够在文本之前添加单词。我假设我需要以某种方式使用字符串。格式命令,但不知道如何工作。任何帮助都将非常感激。下面是我的代码:

DataView dvSql = (DataView)DeskSummary.Select(DataSourceSelectArguments.Empty);
foreach (DataRowView drvSql in dvSql)
{
    Desk.Text = drvSql["Deskname"].ToString();                  
    MarginLabel.Text = drvSql["margin"].ToString();
    CurrentCI.Text = drvSql["comp_index_primarycomp"].ToString();
    WalMartCurrentCI.Text = drvSql["comp_index_walmart"].ToString();
    ForecastMargin.Text = drvSql["margin_forecast"].ToString();
    WalMartForecastCI.Text = drvSql["comp_index_walmart_forecast"].ToString();
    ForecastCI.Text = drvSql["comp_index_primarycomp_forecast"].ToString();
}

如何影响c#中动态创建的标签文本的格式

您可以将格式参数传递给ToString()方法,如下所示:

MarginLabel.Text = drvSql["margin"].ToString("0.00");

但是,正如您所说,您想要添加一些文本。因此,我建议:

MarginLabel.Text = String.Format("Prepended text {0:0.00}", drvSql["margin"]);

注意:我只是选了你的一个标签;

使用

string.Format("This is a before text {"0"},your param) 

//您可以添加任意多的变量和{""}字符串字量,只要确保您使用","

分隔变量

代码

string stringNumber = "5123.34214513";
decimal decimalNumber = Decimal.Parse(stringNumber);
string output = String.Format("Your text: {0:0.00}", decimalNumber);
Console.WriteLine(output); //Your text: 5123.34

如果列的类型为string

,则此操作有效

String.Format()将完成您需要的前置/追加文本值,

string.Format("prepend text {"0"} append text", paramString) 

但是如果你想实际上格式化你从SQL中得到的值,那么你需要使用String.Format()对该值以及可能一些RegEx表达式和/或.ToUpperCase.ToLowercase为您的资本化…类似。

var capitalizedString = paramString.subStr(0,1).ToUppercase + paramString.subStr(1, paramstring.Length);
string.Format("Prepended text {"0"} plus appended text", capitalizedString);