坚持HTML格式化成System.String对象在C#
-
21-09-2019 - |
题
我如何坚持HTML格式为C#中的String对象?
下面是我有:
c.DepartmentAbbr.ToString() + " - (" + c.DepartmentName.ToString() + ")"
其中c.DepartmentAbbr.ToString()和c.DepartmentName.ToString()的两个字段被从使用LINQ数据上下文选择。
下面就是我基本上想:
"<b>" + c.DepartmentAbbr.ToString() + "</b> - (" + c.DepartmentName.ToString() + ")"
,使得第一个字以粗体显示出来。以上只是显示了大胆的标签,一切的文字文本。我想我将需要使用的String.Format,但我不能完全找到一个很好的例子,可以帮助我知道如何使用它做我想做的。
更新
下面是更多的一些细节,我不认为是重要的,但我认为现在他们必须。
下面是我使用的控制。 ASPX代码:
<telerik:RadComboBox ID="rcbDepartments" runat="server" AppendDataBoundItems="True"
AutoPostBack="true" NoWrap="true" Width="250px">
<Items>
<telerik:RadComboBoxItem Text="All Departments" Value="-1" />
</Items>
</telerik:RadComboBox>
和我将项目添加到在C#中使用LINQ此控制:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var abbr = from c in DB.Departments
where c.DepartmentAbbr != "BInst"
select c;
foreach (var c in abbr)
{
String s = String.Format("{0} - ({1})", c.DepartmentAbbr, c.DepartmentName);
rcbDepartments.Items.Add(new RadComboBoxItem(s, c.DepartmentID.ToString()));
}
}
}
在RadComboBoxItem对象可以接受(),(字符串文本),或(字符串文本,字符串值),我使用了后者。
解决方案 6
由于我研究越来越多,我已经差不多得出的结论是什么,我想做的事情是不可能的。我使用的是radcombobox控件粘物品进入,但我有做一些funcky东西与LINQ在服务器端,使得我必须坚持项目为使用Items.Add方法只接受系统的组合框。串。谢谢大家的帮助和意见,但我想我只是将不得不凑合一下我在这种情况下。
下面是更多的一些细节,我不认为是重要的,但我认为现在他们必须。
下面是我使用的控制。 ASPX代码:
和我将项目添加到在C#中使用LINQ此控制: 保护无效的Page_Load(对象发件人,EventArgs的) { 如果(!的IsPostBack) { VAR =简称从C中DB.Departments 其中c.DepartmentAbbr!= “BInst” 选择℃;
foreach (var c in abbr)
{
String s = String.Format("{0} - ({1})", c.DepartmentAbbr, c.DepartmentName);
rcbDepartments.Items.Add(new RadComboBoxItem(s, c.DepartmentID.ToString()));
}
}
}
在RadComboBoxItem对象可以接受(),(字符串文本),或(字符串文本,字符串值),我使用了后者。我敢肯定,现在,由于在RadComboBoxItem只接受字符串,我不能做的项目HTML格式而不使用ASPX项模板标签的限制。不幸的是,我的情况,我不能这样做,因为这已经引起了我一些其他的问题,我为什么我做什么我目前正在做的事。
其他提示
String.Format("<b>{0}</b> - ({1})", c.DepartmentAbbr, c.DepartmentName)
下面是一个伟大的参考字符串格式化在C#:
对于任何试图做到这一点在 ASP.NET MVC ...
此不起作用:
<%=String.Format(resourceString, "<b>" & Model.UserName & "</b>")%>
在大胆的标记HTML编码,如你所期望的。
然而,这种工作的治疗:
<%=String.Format(resourceString, MvcHtmlString.Create("<b>" & Model.UserName & "</b>")%>
MvcHtmlString s = MvcHtmlString.Create(String.Format("{0} - ({1})", c.DepartmentAbbr, c.DepartmentName));
我想你最好改变字符串s MvcHtmlString对象。
我猜你正在寻找一种方式来让对象c
吐出一个HTML格式的字符串。
以此为一个示例:
public class myExample : IFormattable{ private string myExampleStr; public myExample(string sampleStr){ this.myExampleStr = sampleStr; } /* Implement an Equals() function - OVERRIDE! */ public override bool Equal(object obj){ return true; } /* Implement an ToString() function - OVERRIDE */ public override string ToString(){ return this.myExampleStr; } /* Implement an GetHashCode() function - OVERRIDE */ public override int GetHashCode(){ return this.myExampleStr.GetHashCode(); } /* Here we implement the IFormattable interface */ public string ToString(string format) { return this.ToString(format, null); } public string ToString(IFormatProvider formatProvider) { return this.ToString(null, formatProvider); } public string ToString(string format, IFormatProvider formatProvider) { if (string.IsNullOrEmpty(format)) format = "G"; if (formatProvider != null) { ICustomFormatter formatter = formatProvider.GetFormat(this.GetType()) as ICustomFormatter; if (formatter != null) return formatter.Format(format, this, formatProvider); } switch (format) { case "b": return string.Format("<b>{0}</b>", this.myExampleStr); case "i": return string.Format("<i>{0}</i>", this.myExampleStr); default: return this.myExampleStr; } } }
和假设我们实例化这个类是这样的:
myExample example = new myExample("tommieb75");
和发出在物体上的简单ToString()
呼叫打印出用于粗体一个HTML标记如下所示
Console.WriteLine("{0}", example.ToString("b")); // Output would be <b>tommieb75</b>
此实施例用于说明如何使用自定义参数来ToString()
方法,这样就可以使用粗体或斜体HTML标签嵌入或基于用于这个类的ToString
函数的参数格式化值的任何其他方式
这是否回答你的问题?
我认为这个问题是其他地方。你把这个字符串中Label控件或文字控制?如果它是一个标签,我相信这是逃避你的文字。把它放在一个asp:文字控制来代替。而且顺便说一句,你不需要调用的ToString()这么多。你可以使用:
"<b>" + c.DepartmentAbbr + "</b> - (" + c.DepartmentName + ")"
和toString()将基本上被调用给你。
如果您输出此网页上的 - 尝试使用:
Server.HtmlEncode(string)
Server.HtmlDecode(string)
方法