2013-05-23 2 views
2

내 asp.net 웹 사이트에서 로그 정보를 제공하는 텍스트 상자가 있습니다. 이 로그를 사용하여 오류, 성공 및 기타 정보를 표시합니다. 내가 원하는 것은 로그의 유형에 따라 텍스트로 된 텍스트를 컬러로 표시하고 싶습니다. 예를 들면; 빨간색 텍스트로 오류를 표시하고 녹색으로 성공을 표시하고 싶습니다.텍스트 상자에 다른 색상 문자열 (텍스트) 표시 asp.net

다음 코드를 시도했지만이 코드를 사용하면 텍스트 상자의 전체 내용의 색이 바뀝니다. 다음과 같이

/// <summary> 
    /// colorIndex (0 = default, 1 = red, 2 = green) 
    /// </summary> 
    /// <param name="logValue"></param> 
    /// <param name="colorIndex"></param> 
    private void writeToLog(string logValue, int colorIndex) 
    { 
     if (colorIndex == 0) 
     { 
      TextBox2.ForeColor = Color.Black; 
     } 
     else if(colorIndex == 1) 
     { 
      TextBox2.ForeColor = Color.Red; 
     } 
     else if(colorIndex == 2) 
     { 
      TextBox2.ForeColor = Color.Green; 
     } 

     TextBox2.Text = "[ " + DateTime.Now + "] " + logValue + Environment.NewLine + TextBox2.Text; 

    } 

사실 내가 출력을 원하는 :

enter image description here

당신은 출력 이상에서 볼 수있는 동일한 texbox 텍스트의 세 가지 색상이 있습니다. 이 출력은 실제로 데스크톱 응용 프로그램의 출력입니다. 그리고 asp.net 웹 페이지에서 같은 유형의 출력을 표시하려고합니까? 내가 어떻게 해? 도와주세요. 미리 감사드립니다 !!

+1

당신은 css''를 통해 색상을 지정할 수 있도록하는'label' 또는'span'를 사용할 수 있습니다. – Rahul

답변

3

답변 해 주셔서 감사합니다. Knaģi와 마찬가지로 클라이언트가 로그의 값을 편집 할 필요가 없으므로 WYSIWYG 편집자의 사용은 불필요하다고 생각했습니다. 그래서 내 문제를 해결하기 위해 나는 텍스트 상자 대신 div를 사용했다.

<div id = "log" style="border: thin solid #00CC99; width:844px; height:193px; overflow:auto;" runat= "server"> 
    </div> 

그리고 난 뒤에 내 코드에서

과 같이 로그를 작성 :

private void writeToLog(string logValue, int colorIndex) 
    { 
     logValue = "[ " + DateTime.Now + "] " + logValue; 
     if (colorIndex == 0) 
     { 
      string htmlCode = "<font style='color:black'>"+logValue+"</font><br/>"; 
      log.InnerHtml = htmlCode + log.InnerHtml; 

     } 
     else if(colorIndex == 1) 
     { 
      string htmlCode = "<font style='color:red'>" + logValue + "</font><br/>"; 
      log.InnerHtml = htmlCode + log.InnerHtml ; 
     } 
     else if(colorIndex == 2) 
     { 
      string htmlCode = "<font style='color:green'>" + logValue + "</font><br/>"; 
      log.InnerHtml = htmlCode + log.InnerHtml ; 
     } 



    } 
2

간단한 TextBox를 사용할 수 없습니다. 대신 많은 WYSIWYG 편집기 중 하나를 사용해야합니다. 모든 서버 측 언어에 대해 래퍼와 함께 사용할 수있는 옵션이 많이 있습니다.

하지만 코드에서 사용자가이 데이터를 수정할 필요가 없으므로 정확한 스타일로 HTML 코드를 렌더링하고 overflow-y: auto; max-height:100px CSS 스타일을 적용하여 내용이 너무 길 때 스크롤 막대가 렌더링되도록해야합니다.

2

asp.net에서, 나는 테이블 option.and 당신이 에 대한 ID와 클래스를 사용하여 텍스트 색상을 변경하고 CSS

을 적용하여이 스타일을 줄 수있는 최고라고 생각
<table id="log"> 
<tr><th>Response Type</th><th>Response Time</th><th>Response Data </th></tr> 
<tr class="error"><td></td><td></td><td></td></tr> 
<tr class="info"><td></td><td></td><td></td></tr> 
</table> 

jQuery 또는 코드로 행을 추가해야합니다. 나는 그것이 여러분에게 도움이 될 것이라고 생각합니다.

1

대신 레이블을 사용할 수 있습니다. 그렇게하면 html로 텍스트를 렌더링하는 것이 간단하고 쉬울 것입니다 span 태그는 서로 다른 스타일을 정의합니다.

if (colorIndex == 0) 
    { 
     Lable2.Text += "<span style='color:Black'>Black information...</span><br/><br/>"; 
    } 
    else if(colorIndex == 1) 
    { 
     Lable2.Text += "<span style='color:Red'>Red information...</span><br/><br/>"; 
    } 
    else if(colorIndex == 2) 
    { 
     Lable2.Text += "<span style='color:Green'>Green information...</span><br/><br/>"; 
    } 
관련 문제