1

私は完全な ASP.NET 初心者なので、これはおそらく簡単です。

次の疑似コードを使用して、コードビハインドでテキストが動的に設定されるラベルがあります

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), name, day);

SOME-DYNAMIC-MESSAGE の形式は次のとおりです。{0} と {1} は変数名と日を表します。

Hello {0}, today is {1}.

これらの変数を太字にする必要があります。それらをスパンでラップしようとしているので、このコードを使用して CSS からアクセスできます

HtmlGenericControl bold = new HtmlGenericControl("span");
    bold.InnerText = name;
    bold.Attributes.Add("class", "bold");

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), bold, day);

しかし、それは機能しません。追加のラッパーは追加されていません。変数の内容を表示するために停止しました。

誰でもこれを修正する方法を知っていますか?

4

2 に答える 2

1

試す :

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), "<span style=\"font-weight:bold\">" + bold + "</span>", "<span style=\"font-weight:bold\">" + day + "</span>");
于 2015-02-16T16:14:25.873 に答える
0

アプローチを示す簡単なサンプル アプリ (コンソール アプリ) を次に示します。String.Format入力文字列をフォーマットしてfont-weight、トークン ( {0}{1}など...)を太字にしようとしていると思います。

これを使用しFunc<string,string>て、入力文字列をフォーマットします。次に、次の CSS を HTML ページに追加します。

class Program
{
    static void Main(string[] args)
    {
        var input = @"Hello {0}, today is {1}.";

        Func<string, string> SomeDynamicMessage = s => {
            var val = s;
            val = val.Replace("{", "<span class='bold-token'>{");
            val = val.Replace("}", "}</span>");
            return val;
        };

        Console.WriteLine(SomeDynamicMessage(input));

        // output: Hello <span class='bold-token'>{0}</span>, today is <span class='bold-token'>{1}</span>.
        var final = Console.ReadLine();
    }
}

CSS スニペット:

.bold-token { font-weight: bold; }

最終出力:

Hello <span class='bold-token'>{0}</span>, today is <span class='bold-token'>{1}</span>

編集 -- 詳細情報

使用方法は次のとおりです。

var input = @"Hello {0}, today is {1}.";
label.Text = string.Format(SomeDynamicMessage(input), "test", "Thursday");

出力は次のようになります。

Hello <span class='bold-token'>test</span>, today is <span class='bold-token'>Thursday</span>
于 2015-02-16T16:09:44.933 に答える