BANANA.Web.Controls.Label

바나나 프레임워크의 Label은 System.Web.UI.WebControls.Label을 상속받은 클래스입니다.
아래 표와 같이 간단한 기능 몇 가지를 제공합니다.

Properties
Name Type Description
Compulsory bool Label의 우측에 필수입력 사항이라는 표시의 빨간 별표를 하나 출력합니다.
라벨입니다. 
<bf:Label ID="Label1" runat="server" Compulsory="True" Text="라벨입니다." />
ShowDot bool Label의 좌측에 조그만 점을 하나 찍습니다.
이 점은 세로로 중앙에 위치하게 됩니다.
 라벨입니다.
<bf:Label ID="Label2" runat="server" ShowDot="True" Text="라벨입니다." />
ContainerID string Label 개체는 아래와 같은 소스로 이루어져 있습니다.
<span><img src="점 이미지" /><span>라벨입니다.</span></span>
C#에서 개체의 Visible 속성에 false를 주게되면, DOT 이미지나 텍스트나 모두 화면에서 사라지게 됩니다.
Label2.Visible = false;	// Label 개체 자체가 사라짐

문제는 javascript나 jquery에서 Label 및 DOT 이미지, 필수입력 아이콘 등을 모두 사라지게 하려면 어떻게 하면 될까요?
아마도 개체의 ClientID를 이용하여 숨기려고 할 것 입니다.
<script type="text/javascript">
	$(document).ready(function () {
		$("#<%=Label2.ClientID %>").hide();
	});
</script>
불행히도 이 방법으로는 DOT 이미지를 없앨 수 없습니다.
왜냐면, Label2.ClientID는 전체를 감싸는 SPAN태그가 아니라, 텍스트를 감싸는 SPAN태그의 ClientID를 반환하기 때문이지요.
우리가 없애고자 하는 것은 그게 아니잖아요?
텍스트 뿐만 아니라, 앞에 있는 IMG태그도 없애야 하잖아요?
이럴때는 아래와 같이 ContainerID를 이용하시면 됩니다.
<script type="text/javascript">
	$(document).ready(function () {
		$("#<%=Label2.ContainerID %>").hide();
	});
</script>
ResourceName string ResourceName 속성을 지정하시면, App_GlobalResources 폴더에 있는 리소스를 자동으로 찾습니다.
다국어를 지원하는 웹 사이트를 제작중이시라면 유용하게 활용되겠지요?
주의하실 점은 ResourceName에는 해당 리소스의 확장자를 입력하시면 안 됩니다.
아래와 같이 확장자를 제외한, 리소스명을 입력해 주세요.
<bf:Label ID="Label1" runat="server" ResourceName="Language" Text="안녕" />
솔루션 탐색기
이때 아래와 같이 Text 속성 값이 리소스 키가 됩니다. 언어설정


리소스는 브라우저의 언어설정을 최우선적으로 따라가게 됩니다.
그런데, 만약 강제로 언어설정을 지정하고 싶다면 어떻게 해야 할까요?
아래와 같이 web.config에 언어 정보를 강제로 지정할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>

<configuration>
	<system.web>
		<globalization uiCulture="ko-KR" />
	</system.web>
</configuration>


한 가지 추가적으로 주의하실 점은, 간혹 아래와 같은 코드로 리소스 적용이 안 된다고 불평하시는 경우가 있습니다.
<bf:HyperLink ID="Label1" runat="server" ResourceName="Language">
	안녕</bf:HyperLink>
화면에 출력되는 Text의 속성은 "안녕"이라고 오해하실 수 있으나, C#에서는 이 속성을 "wrwnwt안녕"이라고 인식 합니다.
줄바꿈과 탭이 하나 들어갔기 때문이지요.
그렇다면, 리소스에도 동일하게 적용해주셔야 하는데요.
그렇지 않으면, 정확한 리소스를 찾을 수가 없게 됩니다.


Label과 HyperLink의 사용법은 매우 유사합니다.
이상, Label 컨트롤에 대한 설명이었습니다.

TOP