Literal Control

Literal 컨트롤은 Label 컨트롤처럼 텍스트를 출력하는 기능을 하지만 스타일을 적용할 수 있는 속성들을 가지고 있지 않습니다. 반면, Label에는 없는 HTML 태그를 처리 하는 특수한 기능을 가지고 있는데, Mode속성이 그 역할을 합니다. Mode 속성은 LiteralText 속성에 설정된 값들을 어떻게 출력할지 결정하는데, 다음과 같은 세가지를 가질수 있습니다.
1. PassThrough: 변경하지 않고 있는 그대로 출력합니다.
2. Encode: HttpUtility.HtmlEncode 메서드로 인코딩한 내용을 출력한다.
3. Transform: 클라이언트 기기나 브라우저의 특성을 조사한 후 지원하지 않는 태그가 있으면 삭저한 후 출력합니다.

예를 들어, 사용자가 입력한 클라이언트 스크립트 코드나 HTML 문서의 소스를 브라우저로 출력할 필요가 있다면 Mode를 Encode로 지정하면 편리합니다.

아래 상관된 DEMO 입니다.
============================================================================================
ASP.NET 웹 사이트를 만들고 "Literal"이라는 폴더를 만듭니다. 폴더 안에 "LiteralControlTest"라는 WebForm을 추가 합니다.
Result:

============================================================================================
LiteralControlTest.aspx
==================

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LiteralControlTest.aspx.cs" Inherits="Literal_LiteralControlTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>LiteralControl Test</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Literal ID="Literal1" runat="server" Mode="Encode"><i>LiteralControl(Encode)</i></asp:Literal><br />
        <asp:Literal ID="Literal2" runat="server" Mode="PassThrough"><i>LiteralControl(PassThrough)</i></asp:Literal><br />
        <asp:Literal ID="Literal3" runat="server" Mode="Transform"><i>LiteralControl(Transform)</i></asp:Literal>
    </div>
    </form>
</body>
</html>


 

posted @ 2009-02-04 18:09  OOK  阅读(203)  评论(0编辑  收藏  举报