2006-07-25
2006-07-20
Label컨트롤 가지고 놀기.
ASP.NET의 많은 컨트롤 중 상당히 사용빈도가 높은 라벨 컨트롤을 가지고 놀아보자.
일단...Label 컨트롤의 기본 사용법을 보겠다..(자세한건 MSDN을 참조하세요.)
aspx페이지에다 라벨 컨트롤을 하나 떨어트려놓고 id값을 lblID라 줘보자.
비하인드 페이지에서는 다음과 같이 하여보자.
private void Page_Load(object sender, System.EventArgs e)
{
lblID.Text = "TEST";
}
페이지를 로딩해보면 TEST라는 달랑 글씨가 하나만 떠있을 것이다. 자 마우스를 오른쪽 클릭해서
소스보기를 해보자.
소스를 보면 몬가 특징이 보일것이다...그렇다.
렌더링을 하면 label컨트롤은 div태그로 쌓여있다. 이걸 보면 가지고 놀수 있는일이 많다는건 보면
알 수 있는 것이다 ^^
일단....가장 많이 쓰이는 것중 하나가 숫자 형태이다...라벨에 나오는 숫자를 천단위 마다 , 를 주고 싶다면
private void Page_Load(object sender, System.EventArgs e)
{
string strPP = "1234567890";
lblID.Text = String.Format("{0:#,0}",string.Parse(strPPP));
}
보면 세자리마다 콤마가 나오는 것을 볼 수 있을것이다...
TIP이라면 TIP이지만 서버딴에서 코딩하지 않고 VISIBLE 하는 방법은
스크립트 구문에서 div테그를 다루듯이 똑같이 다루면 된다는 것이다..^^;;;
2006-07-18
DataGrid에 데이터 변형하여 나타내는 방법.
예를 들어 DataGrid에 별표시를 하고싶다..
DB에는 ★를 넣지 않고...1,2,3... 이렇게 숫자로 넣고 숫자에 따라 별을 표시하고 싶다..
이럴때 TIP을 가르쳐 드리죠..ㅎㅎㅎ
public static string ConvertImage(string strName)
{
string strResult = "";
for(int i=0; i < int.Parse(strName); i++)
{
strResult += "★";
}
return strResult;
}
렇게 스태틱 메소드 하나를 만드시고, aspx페이지의 GRID의 Colum에는
<asp:TemplateColumn HeaderText="점수">
<ItemStyle Font-Size="10pt" Font-Names="돋움" HorizontalAlign="Center" ForeColor="#FD9FB7" Width="80px"></ItemStyle>
<ItemTemplate>
<%#funcConvert(DataBinder.Eval(Container.DataItem, "grade"))%>
</ItemTemplate>
</asp:TemplateColumnglt;
그리고 이곳에 넘겨줄 퍼블릭 메소드를 하나 만드세요..이렇게
public static string funcConvert(object strGrade)
{
return ConvertImage(strGrade.ToString());
}
자 보시면 ConvertImage라는 메소드에 strGrade라는 값을 넘겨주고 이것이 별표로 바뀌며
다시 리턴해준다는 간단한 공식입니다..이걸 응용하시면 많은 것을 할 수 있겠죠..^^
데이터 그리드 기본페이징 효과주기
기본페이징이 너무 심심하다.잼없다...좀 꾸미고 싶다..이럴땐
ItemCreated이벤트에다 정의해주면 됩니다..
예를 들어..페이징을 ◀12[3]456789▶런식으로 하고 싶다..하실땐
bool exist = false;
if(e.Item.ItemType == ListItemType.Pager)
{
TableCell Pager = (TableCell)e.Item.Controls[0];
Pager.VerticalAlign = VerticalAlign.Middle;
for(int n=0; n<Pager.Controls.Count; n+=2)
{
try
{
Label l = (Label) Pager.Controls[n];
l.Text = "["+l.Text+"]";
l.CssClass = "paging";
}
catch
{
LinkButton h = (LinkButton) Pager.Controls[n];
if((h.Text == "...") && (!exist))
{
h.Text = "◀";
h.CssClass = "paging";
}
else if((h.Text == "...") && (exist))
{
h.Text = "▶";
h.CssClass = "paging";
}
else
{
exist = true;
h.CssClass = "paging";
}
}
}
렇게 코딩을 하시면 됩니다. ^^





