ASP.NET DataGrid 페이지 나누기(Pager사용하여 페이징, 출력캐싱)

홈 > 공유팁! > 프로그램 관련
프로그램 관련

ASP.NET DataGrid 페이지 나누기(Pager사용하여 페이징, 출력캐싱)

꽁스짱 0 1324

ASP.NET DataGrid 페이지 나누기(Pager사용하여 페이징, 출력캐싱)


출력 캐싱은 전체 페이지의 내용을 캐싱 할 때 유용 하다. 엑세스가 심한 사이트에서는 캐싱이 1분정도의 단위로 자주 일어 난다. 출력 캐싱에 위한 페이지 캐싱을 사용 하면 그 페이지에 대한 후속 요청은 그것을 수행하는 코드의 수행 없이 출력 페이지에 제공 된다.
오라클 데이터베이스의 EMP 테이블에 OleDbDataAdapter로 질의 하고 데이터 셋을 통해 페이지에 캐싱 한 후 10초 마다 MyData Control에 다시 표시하면서 시간을 기록하게 하는 예제를 작성 해 보도록 하자.
DataGrid에서 페이지 나누는 기능도 확인하자. 데이터 그리드 속성 중 AllowPaging을 “true”로 하자.
 “true”로 하자.

<%@ OutputCache Duration="10" VaryByParam="deptno" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="C#" runat="server">

void Paging(Object src, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) {
    MyDataGrid.CurrentPageIndex = e.NewPageIndex;

    Bind();
}


    void Page_Load(Object Src, EventArgs E ) {

    if (!Page.IsPostBack)
      Bind();
      
      }

      void Bind() {

        String selectCmd;
        String deptno = Request["deptno"];

        if( deptno == null ) {
            selectCmd = "select empno, ename, sal, deptno from emp";
        }
        else {
            selectCmd = "select empno, ename, sal, deptno from emp where deptno = " + deptno ;
        }

        string conStr = "Provider=MSDAORA;data source=ONJ;User ID=scott;Password=tiger";
        OleDbConnection myConnection = new OleDbConnection(conStr);

        OleDbDataAdapter adapter = new OleDbDataAdapter(selectCmd, myConnection);

        DataSet ds = new DataSet();
        adapter.Fill(ds);

        MyDataGrid.DataSource=new DataView(ds.Tables[0]);
        MyDataGrid.DataBind();

        
        TimeMsg.Text = DateTime.Now.ToString("G");
    }

</script>
<body>
    <form id="form1" runat="server">
    <h3>
        <font face="Verdana">출력캐싱 사용하기:</font>
    </h3>
    <b>부서코드별 보기:<%=Request["deptno"]%></b>
    <table cellspacing="0" cellpadding="3" rules="all" style="border-left-color: black;
        border-bottom-color: black; width: 700px; border-top-color: black; border-collapse: collapse;
        background-color: #aaaadd; border-right-color: black">
        <tr>
            <td>
                <a href="outputcashing.aspx?deptno=10">10번 부서</a>
            </td>
            <td>
                <a href="outputcashing.aspx?deptno=20">20번 부서</a>
            </td>
            <td>
                <a href="outputcashing.aspx?deptno=20">30번 부서</a>
            </td>
        </tr>
    </table>
    <p>
        <asp:DataGrid ID="MyDataGrid" runat="server" Width="700px" BackColor="#CCCCFF" BorderColor="Black"
            CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd"
            Height="153px" Font-Names="Verdana" PageSize="3" AllowPaging="True" AllowSorting="True"
            OnPageIndexChanged="Paging">
            <FooterStyle BackColor="#99CCFF" BorderStyle="Solid" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#AAAADD"></HeaderStyle>
            <PagerStyle Mode="NumericPages" />
        </asp:DataGrid>
        <p>
            <i>마지막 생성 일시:</i>
            <asp:Label ID="TimeMsg" runat="server" /></p>
    </form>
</body>
</html>
 
0 Comments
제목