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

时间:2011-12-15 18:17:19

标签: c# formatting

我认为这应该是一个非常容易回答的问题,但我似乎无法弄明白。 我将文本添加到c#中sqldatasource的标签中。所有这些都有效,但我希望能够格式化文本。我想1)能够将格式更改为0.00(而不是一串小数),我也希望能够在文本之前添加单词。我假设我需要以某种方式使用string.format命令,但无法弄清楚如何使用它。任何帮助将不胜感激。这是我的代码:

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

4 个答案:

答案 0 :(得分:3)

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

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

但是,正如你所说,你想要预先添加一些文字。因此,我建议:

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

注意:我刚选了你的一个标签;我不确定哪些人会得到特殊的格式化处理。

答案 1 :(得分:0)

使用

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

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

分隔变量

答案 2 :(得分:0)

这是代码

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

,则此方法有效

答案 3 :(得分:-1)

String.Format()将执行前置/附加文本值所需的内容,

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

但是如果你想要实际格式化你从SQL返回的值,那么你需要在该值上使用String.Format()以及可能使用一些RegEx表达式和/或.ToUpperCase或{ {1}}为你的大写......就像。

.ToLowercase