관리 메뉴

I LOVE EJ

ASP.NET 2.0 테마 본문

Web Development/.NET

ASP.NET 2.0 테마

BeOne 2007. 10. 15. 15:43

사용자 삽입 이미지


















최대한 간단하게 작성하여, 이해하기 쉽도록 하여 실전에 적용할 수 있는 예제를 만드려고 노력했음다..
 
코드보기.
 
____Default.aspx____
 
<div>
<h3>ASP.NET THEME. Blue & Red</h3>
Theme:
<asp:DropDownList ID="drListTheme" runat="server">
    <asp:ListItem>Red</asp:ListItem>
    <asp:ListItem>Blue</asp:ListItem>                
</asp:DropDownList>
<asp:Button ID="btnTheme" runat="server" Text="테마적용" OnClick="btnTheme_Click" />
<p />
<asp:Button ID="btnBlue" runat="server" Text="Blue" Width="100px" BorderStyle="None" />
<asp:Button ID="btnRed" runat="server" Text="Red" Width="100px" BorderStyle="None"  />
</div>
 
테마는 Page_Load에서는 적용이 안 됩니다.. 적용을 하려면, Page_PreInit에서만 해야 햐죵..
 
____Default.aspx.cs____
protected void Page_PreInit(object sender, EventArgs e)
{
    string theme = Request.QueryString["Theme"];
    Page.Theme = theme;
}
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        foreach (ListItem item in drListTheme.Items)
        {
            if (item.Value == Request.QueryString["Theme"])
            {
                item.Selected = true;
                break;
            }
        }
    }
}
protected void btnTheme_Click(object sender, EventArgs e)
{
    string theme = drListTheme.SelectedItem.Text;
  
    Response.Redirect("Default.aspx?Theme=" + theme);
}
 
 
사용자 삽입 이미지
 
 

[프로젝트 명]옆에서 오른 마우스 클릭해서 Add ASP.NET Folder에서 Theme를 추가합니다.

첫번째 테마이름은 Blue, 다음은 Red로 하면 됩니다.

Style.css는 아무데나 임의로 하시면 되구요..


Blue.skin이나 Red.skin 파일은 각 컨트롤에 대한 속성을 지정해주면 됩니다.

Default.aspx에 만약 버튼 컨트롤이 있다면 .skin파일에 똑같이 복사해서 아이디만 빼고

속성을 지정해주면 테마적용시 샤샤샥 하고 바뀌게 됩니다..


____Blue.skin____

<asp:Button runat="server" Width="100px" BackColor="#C0C0FF" BorderColor="#8080FF" BorderStyle="None" />


____Red.skin____

<asp:Button runat="server" Width="100px" BackColor="#FFC0C0" BorderColor="Red" BorderStyle="None" />