2009-02-04 4 views

답변

20

주요 차이점은 라벨 제어가에 스타일을 적용 할 수 있도록 설정 한 텍스트 (속성)에 span 태그를 추가하는 것입니다 모든 종류의 콘텐츠를 렌더링합니다. 스크립트, hmtl 및 기타 유형의 문서 컨텐츠를 렌더링하는 데 사용할 수 있습니다. Text 속성에서 제공 한 문자열은 변경되지 않습니다.

참고 : Label 컨트롤을 사용하면 직선 HTML도 렌더링 할 수 있지만 언급 한대로 모든 텍스트를 범위 태그에 넣습니다. 따라서 큰 HTML 부분을 렌더링하기 위해서는 Literal 컨트롤이 필요합니다.

P.S : HTML 에서는 <label> 태그가있다. 당신이 Label 컨트롤의 AssociatedControlId 속성을 사용하는 경우 (즉 지적에 대해 레이 덕분에.) HTML로 <label>를 렌더링 예를 들어

:

<asp:Label runat="server" id="FirstNameLabel" AssociatedControlId="FirstNameTextBox"> 
Input First Name: 
</asp:Label> 
<asp:Textbox runat="server" id="FirstNameTextBox" /> 

이 같은 렌더링 :

<label for="FirstNameTextbox" id="FirstNameLabel">Input first name:</label> 
<input type="text" id="FirstNameTextbox" name="FirstNameTextBox" /> 

W3 학교의 here도 참조하십시오.

+0

리터럴은 어떨까요? 스팬을 삽입하지 않습니까? – ecleel

+0

아니요, Literal 컨트롤은 삽입 한 텍스트를 변경하지 않고 곧바로 작성합니다. – splattne

+0

리터럴 컨트롤은 텍스트 속성을 통해 설정 한 것과 정확히 일치합니다. – andynormancx

2

페이지에 텍스트를 표시하는 데 사용되며 표시되는 텍스트는 서버 측 코드를 통해 런타임에 설정할 수 있습니다.

0

페이지에 텍스트를 넣으면 아무렇지도 않게 배치됩니다. HTML, JavaScript 또는 일반 텍스트를 쓸 때 사용할 수 있습니다.

<span>My Label text</span> 

리터럴 제어에 사용하면 다음을 수행 할 수 있습니다

2

레이블 컨트롤에는 레이블을 다른 컨트롤과 연결하는 AssociatedControlId 속성도 있습니다. 이것이 유용한 곳의 예로는 텍스트 상자 컨트롤이 있습니다. 이들이 연관되면 화면 판독기가 더 나은 결과를 제공 할 수 있습니다.

또 다른 예는 레이블이있는 라디오 단추이며 레이블을 클릭하면 AssociatedControlId 속성이 설정된 경우 라디오 단추가 선택됩니다. splattne 언급으로 리터럴은 단순히 자리 표시 자입니다 반면

MSDN on AssoicatedControlId

1

는, 레이블, 스팬에서의 텍스트를 둘러싼 다. 그러나 ASP.Net 컨트롤을 렌더링하는 방법에 대한 가정을 세 심하게 고려해야합니다. 사용중인 사용자 에이전트에 의존 할 수 있습니다. 예를 들어 패널 컨트롤은 IE에서 div로 렌더링되지만 Firefox에서는 표로 렌더링됩니다.

+0

그리고 AssociatedControlId를 사용하면 라벨 태그를 렌더링 할 것이다. 내 의견으로는 ASP.NET에서 가장 이해하기 어려운 컨트롤 –

4

뭔가를 표시하기 위해 텍스트를 사용하고 문자를 서식을 지정할 필요가없는 경우 Literal 컨트롤을 사용하는 것이 좋습니다. ViewState는 Literal 컨트롤과 Label 컨트롤에 비해 무겁지는 않으며 ViewState를 사용하는 페이지에서 ViewState를 많이 사용하면 실제로 페이지 크기를 늘릴 수 있습니다.

나는 항상 스스로에게 묻습니다. 사용자 정의 스타일이나 서식을 적용해야합니까? 예, 라벨을 사용하십시오. 아니요, 리터럴을 사용하십시오.레이블이

  • 라벨이 텍스트 상자와 같은 다른 컨트롤에 포커스를 설정하는 데 사용할 수있는 제목 태그에 사용할 수없는 반면

  • 0
    • 우리는 제목 태그에 리터럴 컨트롤을 사용할 수 있습니다. 리터럴 반면 단순히 Literal 컨트롤은 Label 컨트롤과 비슷합니다 여러 가지 방법으로 웹 페이지
    0

    1에 정적 텍스트를 rander. 이 두 컨트롤은 모두 Webform에 Text를 표시하는 데 사용됩니다. Text 속성은 HTML 또는 코드 숨김으로 설정할 수 있습니다.

    2. 레이블 컨트롤은 렌더링 할 때 span 태그에 텍스트를 래핑합니다. Label 컨트롤에 적용된 스타일은 span 태그의 style 속성을 사용하여 렌더링됩니다. 예를 들어

    , 다음 HTML

    <asp:Label ID="Label1" runat="server" Text="Lable Text" 
    ForeColor="Red" Font-Bold="true" ></asp:Label> 
    

    <span id="Label1" style="color:Red;font-weight:bold;">Lable Text</span> 
    

    3. 리터럴 컨트롤로 렌더링 할 것인가, 출력하지 주위의 태그를 않습니다. 텍스트는있는 그대로 표시됩니다. 예를 들어

    ,

    <asp:Literal ID="Literal1" runat="server" 
    Text="Literal Control Text"></asp:Literal> 
    

    Literal 컨트롤의 텍스트로 렌더링되는 다음과 같은 HTML이보다 어떤 스타일을 적용 할 경우

    4. 레이블 컨트롤 사용 리터럴 컨트롤

    8. 리터럴 컨트롤은 Label 컨트롤과 비교할 때 가벼운 컨트롤입니다.

    관련 문제