'도구상자'의 "GridView"컨트롤을 FrmGridView.aspx의 <div>태그안에 마우스로 "드래그&드롭" --> "GridView 컨트롤"의 '스마트버튼' 마우스로 클릭 -> "데이터 소스 구성" 마우스로 클릭하여 '마법사' 창을 통해 (SqlDataSource컨트롤에서와 같은 과정으로 하되, 단 "ORDER BY"에서 "Num"의 DESC(내림차순)로) 데이터베이스에 연결한다.









"GridView"의 이벤트속성 중 아래그림과 같이 "RowDataBound"속성을 더블클릭하여 [FrmGridView.aspx]의 "코드비하인드페이지"인 [FrmGridView.aspx.cs]에서 이벤트핸들러를 추가하고 코드를 작성한다.








[FrmGridView.aspx] 소스코드 및 디자인



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

 

<!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></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        <br />

        GridView Memos 테이블의 데이터 출력<br />

        <br />

        <asp:GridView ID="GridView1" runat="server"

            AutoGenerateColumns="False"

            DataKeyNames="Num" ShowFooter="true"

            DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound">

            <Columns>

                <asp:BoundField DataField="Num" HeaderText="번호" ItemStyle-Width="100px"

                    ItemStyle-HorizontalAlign="Center"                   

                    HeaderStyle-BackColor="Blue"

                    HeaderStyle-ForeColor="White"

                    FooterStyle-BackColor="Aqua"

                    />

                <asp:TemplateField HeaderText="이름">

                    <ItemTemplate>

                        <a href='mailto:<%# Eval("Email") %>'>

                            <%# Eval("Name") %>

                        </a>

                    </ItemTemplate>

                </asp:TemplateField>

                <asp:HyperLinkField HeaderText="이름"

                    DataTextField="Name"

                    DataNavigateUrlFormatString="View.aspx?Num={0}"

                    DataNavigateUrlFields="Num" />

            </Columns>

            <RowStyle BackColor="Yellow" />

            <AlternatingRowStyle BackColor="Gray" />

        </asp:GridView>

        <asp:SqlDataSource ID="SqlDataSource1" runat="server"

            ConnectionString="<%$ ConnectionStrings:ConnectionString %>"

            SelectCommand="SELECT * FROM [Memos] ORDER BY [Num] DESC">

        </asp:SqlDataSource>

   

    </div>

    </form>

</body>

</html>

 










-------------------------------------------------------------------------------------




[FrmGridView.aspx.cs] 소스코드




using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmGridView : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

 

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

    {

        // 푸터일 때만 "현재시간" 텍스트입력

        if (e.Row.RowType == DataControlRowType.Footer)

        {

            e.Row.Cells[0].Text = "현재시간 : ";

 

            e.Row.Cells[2].Text = DateTime.Now.ToShortTimeString();

        }

    }

}

 




-------------------------------------------------------------------------------------




[실행결과]

--> 첫 실행화면(처음 웹 페이지 로드시). 푸터(Footer)부분에 현재시간이 출력되었다. ([FrmGridView.aspx.cs] 소스코드에서 분홍색 형광펜 칠한 부분의 코드와 비교할 것!)





--> 아래그림에서 첫 번째 열의 이름("Name")을 마우스로 클릭하면 "Outlook Express("Email")"로 이동한다.([FrmGridView.aspx] 소스코드에서 회색형광펜 칠한 부분의 코드와 비교할 것!)





--> 아래그림에서 두 번째 열의 하이퍼링크가 걸린 이름("Name")위에 마우스오버(MouseOver)하면  아래그림에서 빨간색 테두리로 표시한 것과 같이 웹 페이지의 하단부에 "View.aspx?Num=2"와 같이 표시되는 것을 볼 수 있다([FrmGridView.aspx] 소스코드에서 하늘색 형광펜으로 칠한 부분의 코드와 비교할 것!). 하지만, 여기서는 "View.aspx"를 생성하지 않아서 두 번째 열의 하이퍼링크가 걸려 있는 "이름(Name)"을 클릭하면 웹페이지에서 에러가 난다.







Posted by holland14
: