ASP.NET:文本的粗体部分使用 HtmlGenericControl
ASP.NET: Bold parts of text using HtmlGenericControl
我是一个完整的 ASP.NET 新手,所以这可能很简单。
我有一个标签,其文本是使用以下伪代码在后面的代码中动态设置的
label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), name, day);
SOME-DYNAMIC-MESSAGE 的形式为,其中 {0} 和 {1} 指的是变量名称和日期。
Hello {0}, today is {1}.
我需要将那些变量设为粗体。我试图将它们包装在 span 中,因此我可以使用此代码
从 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);
但它不起作用,没有添加额外的包装器。它甚至停下来告诉我变量的内容。
有人知道如何解决这个问题吗?
这是一个快速示例应用程序(控制台应用程序),用于演示一种方法。我认为您正在尝试为 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>
尝试:
label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), "<span style=\"font-weight:bold\">" + bold + "</span>", "<span style=\"font-weight:bold\">" + day + "</span>");
我是一个完整的 ASP.NET 新手,所以这可能很简单。
我有一个标签,其文本是使用以下伪代码在后面的代码中动态设置的
label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), name, day);
SOME-DYNAMIC-MESSAGE 的形式为,其中 {0} 和 {1} 指的是变量名称和日期。
Hello {0}, today is {1}.
我需要将那些变量设为粗体。我试图将它们包装在 span 中,因此我可以使用此代码
从 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);
但它不起作用,没有添加额外的包装器。它甚至停下来告诉我变量的内容。
有人知道如何解决这个问题吗?
这是一个快速示例应用程序(控制台应用程序),用于演示一种方法。我认为您正在尝试为 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>
尝试:
label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), "<span style=\"font-weight:bold\">" + bold + "</span>", "<span style=\"font-weight:bold\">" + day + "</span>");