제목 : [6][1] RedPlusMemo.ascx.cs
    
    
        
            
                | 글번호: |  | 306 | 
            
                | 작성자: |  | 레드플러스 | 
            
                | 작성일: |  | 2008/07/16 오전 11:04:00 | 
            
            
                | 조회수: |  | 5805 | 
            
        
     
 
    
	
	
    
	using System;
using System.Web.UI;
using RedPlus.Modules.Memo;
public partial class Memo_RedPlusMemoControl : System.Web.UI.UserControl
{
    //[1] 페이징 번호 임시 저장용 필드
    private int intPage = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        //[5] 참고 : Default.aspx?Page={0} 식으로 넘어 온다면...
        if (!String.IsNullOrEmpty(Request["Page"]))
        {
            intPage = Convert.ToInt32(Request["Page"]) - 1;//n-1규칙    
        }
        //[4] PagingHelper 컨트롤에 전체 레코드 수 지정
        if (!btnClose.Visible)
        {
            PagingHelper1.VirtualItemCount = MemoController.GetTotalMemo();
        }
        //[!] PagingHelper 컨트롤에 검색 결과 레코드 수 지정
        else
        {
            PagingHelper1.VirtualItemCount =
                MemoController.GetTotalFindMemo(
                    lstSearchField.SelectedValue, txtSearchQuery.Text);
        }
        if (!Page.IsPostBack)
        {
            DisplayData();
        }
    }
    private void DisplayData()
    {
        if (!btnClose.Visible) // 검색종료 버튼이 보이지 않으면 일반 리스트
        {
            //[3] 페이징 값 매개변수로 전달 
            ctlMemoList.DataSource = MemoController.GetMemos(intPage);
            ctlMemoList.DataBind(); 
        }
        else // 검색종료 버튼이 보이면 검색 리스트
        {
            ctlMemoList.DataSource = 
                MemoController.GetFindMemos(
                    intPage
                    , lstSearchField.SelectedValue
                    , txtSearchQuery.Text);
            ctlMemoList.DataBind(); 
        }
    }
    protected void PagingHelper1_OnPageIndexChanged(object sender, TaeyoNetLib.PagingEventArgs e)
    {
        //[2] 현재 보여줄 페이지 값 지정
        intPage = e.PageIndex;
        DisplayData();
    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        this.btnClose.Visible = true;
        //[4] PagingHelper 컨트롤에 전체 레코드 수 지정
        //[!] PagingHelper 컨트롤에 검색 결과 레코드 수 지정
        PagingHelper1.VirtualItemCount =
            MemoController.GetTotalFindMemo(
                lstSearchField.SelectedValue, txtSearchQuery.Text);
        this.ctlMemoList.DataSource = MemoController.GetFindMemos(intPage, lstSearchField.SelectedValue, txtSearchQuery.Text);
        this.ctlMemoList.DataBind();
    }
    protected void btnWrite_Click(object sender, EventArgs e)
    {
        // MemoInfo 클래스의 인스턴스 생성
        MemoInfo mi = new MemoInfo();
        mi.Name = txtName.Text;
        mi.Email = txtEmail.Text;
        mi.Title = txtTitle.Text;
        mi.PostIP = Request.UserHostAddress;
        // MemoController 클래스의 메서드 호출
        MemoController.AddMemo(mi);
        // 이동
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]);
    }
    protected void btnClose_Click(object sender, EventArgs e)
    {
        // 이동
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]);
    }
}