2009-05-13 2 views
1

편집 : 더 명확하게 업데이트되었습니다.ASP의 HTML : 리터럴 두통 : 너무 많이 도우 려합니다.

지역화해야하는 항목의 정렬되지 않은 목록이 있습니다. < 리 >의 수백의 과정을 통해, 아마도 각자 목록 품목의 원본을 감싸기보다는 오히려 저를 죽일 것입니다 - 나는 <ul>를 원본으로 포장하는 것을 결정했다. 이렇게하면 지역화를 위해 리소스 파일에 "텍스트"특성을 포함시킬 수 있습니다.

그러나 asp.net은 내 코드의 각 줄 바꿈을 < br/>으로 대체해야한다고 생각합니다. 텍스트가있는 각 \ n을 아무 것도 대체하지 않고 방금 뇌 기능을하고있는 속성이나 방법이 있습니까? 나는 Mode = "PassThrough"를 시도해 보았지만 차이는 없었던 것 같다. 내 CSS에서 아무 것도 있지만 hackish 느낀다 :

나는 일시적으로 <UL>의 디스플레이 내부의 모든 < BR/>들하지했습니다. 차라리 < br/>을 렌더링하지 않을 것입니다.

코드 :

<asp:Literal id="literal" runat="server"> 
    <ul> 
     <li>Item 1</li> 
     <li>Item 2</li> 
     ... 
     <li>Item 50</li> 
    </ul> 
</asp:Literal> 

그것은 나를주는 것 :

<ul> 
<br /> 
    <li>Item 1</li> 
    <br /> 
    <li>Item 2</li> 
    <br /> 
    ... 
    <br /> 
    <li>Item 50</li> 
    <br /> 
</ul> 

답변

0

방법 대신, PlaceHolder 컨트롤을 사용하는 방법에 대한?

이 같은 PlaceHolder 컨트롤을 프로그래밍 방식으로 텍스트를 추가 할 수 있습니다

this.MyPlaceHolderControl.Controls.Add(new LiteralControl(GetLocalizedResource())); 

참고이 콘텐츠에 아무런 조치를 취하지해야 LiteralControl하지 Literal를 사용.

그게 효과가 있습니까?

+0

컨트롤 사이에 줄 바꾸기가 필요하거나 전혀 사용하지 않는 패널 (샘플에 리터럴이 필요 없음) –

+0

리소스 파일에 넣을 수있는 일종의 "text"특성에 직접 액세스해야합니다 . –

+0

더 설명해 주시겠습니까? 어떤 "텍스트"가 필요합니까? –

5

< ASP : MSDN 가입일 >

리터럴 : 리터럴 모드 = "통과"> </ASP

통과 : 제어의 내용이 수정되지 않는다.

인코딩 : 컨트롤 내용이 HTML 인코딩 문자열로 변환됩니다.

변형 : 지원되지 않는 마크 업 언어 요소가 컨트롤의 내용에서 제거되었습니다. 리터럴 컨트롤이 HTML 또는 XHTML을 지원하는 브라우저에서 렌더링되면 컨트롤의 내용이 수정되지 않습니다.

+0

나는 통과를 시도했으나 아무런 효과가없는 것처럼 보였다.= "

    \ n
  • 시험 1
  • \ n
  • 시험 2
  • \ n
N \ 없음 \"는 그것에 리터럴 litTest.Text 간단한 페이지 내 기기에 –

+3

; Page_Load에있는 경우
태그가 통과 또는 변형 (기본값) 모드로 삽입되지 않습니다. 어딘가에 string.replace ("\ n", "
") 어딘가에 있나요? –

관련 문제