문제

어떻게 지팡이는 HTML 형식 문자열에서 객체 C#?

여기에 내가:

c.DepartmentAbbr.ToString() + " - (" + c.DepartmentName.ToString() + ")"

c.DepartmentAbbr.ToString()c.DepartmentName.ToString()모두 필드에서 선택된 데이터의 컨텍스트를 사용하여 LINQ.

여기에서 내가 기본적으로 원하는:

"<b>" + c.DepartmentAbbr.ToString() + "</b> - (" + c.DepartmentName.ToString() + ")"

그래서 그 첫 번째 단어에서 나타 굵게 표시합니다.위하여 문자 텍스트와 함께 대담한 태그와 모든 것입니다.나는 가정이 필요합을 사용할 문자열.형식으로 수는 없지만 아주 좋은 예를 찾아하는 나에게 도움이 그것을 사용하는 방법을 알고있을까.

업데이트

여기에는 몇 가지 자세한 내용하지 않았다고 생각했다 중요하지만 내 생각으로 지금 그들은 해야 합니다.

여기에 제어요.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>

고 나에 항목을 추가 이를 사용하여 제어 LINQ C#:

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 개체지거나(),(String text),또는(문자열 텍스트 문자열 값),그리고 내가 사용하고 후자입니다.

도움이 되었습니까?

해결책 6

내가 점점 더 많이 연구함에 따라 나는 내가하고 싶은 것이 불가능하다는 결론에 거의옵니다. 나는 Radcombobox를 사용하여 항목을 고착하고 있지만 서버 측에 LINQ가있는 기능이 많은 작업을 수행해야하므로 시스템을 사용하여 항목을 사용하여 항목을 콤보 상자에 고착해야합니다. .끈. 당신의 도움과 의견에 감사하지만이 경우 내가 가진 것과 관련이 있어야 할 것 같아요.

내가 중요하지 않은 몇 가지 세부 사항은 다음과 같습니다. 그러나 지금은 그들이해야한다고 생각합니다.

여기에 내가 사용하는 컨트롤이 있습니다. ASPX 코드 :

그리고 C#: Protected Void Page_Load (Object Sender, EventArgs e) {if (! ispostback) {var abbr = c in c in c.departmentabbr! = "binst"select 에서이 컨트롤에 항목을 추가하고 있습니다. 씨;

        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의 제한으로 인해 ASPX에서 항목 템플릿 태그를 사용하지 않고 항목에서 HTML 형식을 수행 할 수없는 문자열 만 수락 할 수 있다고 확신합니다. 불행히도 내 상황에서는 이미 내가하고자하는 일을하고있는 이유를 이미 다른 문제를 일으키고 있었기 때문에 이것을 할 수 없습니다.

다른 팁

String.Format("<b>{0}</b> - ({1})", c.DepartmentAbbr, c.DepartmentName)

다음은 C#의 문자열 서식에 대한 훌륭한 참조입니다.

http://blog.stevex.net/string-formatting-in-csharp/

이 작업을 수행하려는 사람에게 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 이 클래스의 기능.

이것이 당신의 질문에 대답합니까?

나는 생각한 문제는 다른 곳이다.당신은 당신이 문에 레이블을 제어 또는 문 컨트롤?의 경우 상표,저는 그것을 믿는 것이 탈출에 대한 텍스트는 당신입니다.에 넣어 asp:Literal 컨트롤을 대신 합니다.고 btw,당신은 필요가 없다.ToString()니다.당신이 사용할 수 있습니다:

"<b>" + c.DepartmentAbbr + "</b> - (" + c.DepartmentName + ")"

고 ToString()하는 것은 본질적으로 호출할 수 있다.

웹 페이지에서 이것을 출력하는 경우 : 다음을 사용해보십시오.

Server.HtmlEncode(string)
Server.HtmlDecode(string)

행동 양식.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top