Agine

 public partial class PlanedTools : UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                InitDrp();
                BindView();
                InitButtons();
            }
        }
        /// <summary>
        /// Bind gridview
        /// </summary>
        private void BindView()
        {
            DataSet ds = ServiceIPM.GetTools(Infosys.AMW.Common.AppConstants.LOGID, Infosys.AMW.Common.AppConstants.PROJECTCODE, Infosys.AMW.Common.AppConstants.TLPITEMTYPE);
            if (ds != null && ds.Tables[0].Rows.Count > 0)
            {
                InitSort(ds);
                gvPlanedTools.DataSource = ds;
                gvPlanedTools.DataBind();
                NowDigitNum();
            }
            else
            {
                panShow.Visible = false;
                panError.Visible = true;
                lbError.Text = Infosys.AMW.Common.PageMessage.ERRORCONNECTDB;
            }


        }
        /// <summary>
        /// Init gridview sort expression and direction according to dataset
        /// </summary>
        /// <param name="ds"></param>
        private void InitSort(DataSet ds) {
            string sortExpression = gvPlanedTools.Attributes["SortExpression"];
            string sortDirection = gvPlanedTools.Attributes["SortDirection"];
            gvPlanedTools.PageSize = Convert.ToInt32(ControlDrp);
            DataTable dt = ds.Tables[0];
            ViewState["PageCount"] = dt.Rows.Count.ToString();
            if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
            {
                dt.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
            }
        }
        /// <summary>
        /// digit page command
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void PagerButton_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
        {
            string commandStr = e.CommandName;
            if (!Infosys.AMW.Common.UtilsTool.ValidataISDigist(commandStr))
            {
                switch (commandStr)
                {
                    case "begin":
                        gvPlanedTools.PageIndex = 0;
                        GeneNextNum(gvPlanedTools.PageIndex);
                        break;
                    case "before":
                        if (gvPlanedTools.PageIndex > 0)
                        {
                            gvPlanedTools.PageIndex -= 1;
                        }
                        break;
                    case "after":
                        if (gvPlanedTools.PageIndex < gvPlanedTools.PageCount - 1)
                        {
                            gvPlanedTools.PageIndex += 1;
                        }
                        break;
                    case "end":
                        gvPlanedTools.PageIndex = gvPlanedTools.PageCount - 1;
                        break;
                    default: 
                        GeneNextNum(gvPlanedTools.PageIndex); 
                        break;
                }
                InitButtons();
                InitDigitPage();
            }
            else
            {
                gvPlanedTools.PageIndex = int.Parse(commandStr) - 1;
                GeneNextNum(int.Parse(commandStr));
            }
            BindView();
        }
        /// <summary>
        /// create digit page num accodding to command
        /// </summary>
        /// <param name="commandStr">user  </param>
        private void GeneNextNum(int command)
        {
            ShowOrHideLinkButton(false);
            int toPage = command;
            int pageCount = gvPlanedTools.PageCount;
            //PAGENUMBER is stand for that every time show how much digit buttons
            int pageNum = AppConstants.PAGENUMBER;
            if (toPage < pageNum)
            {
                lb5.Text = pageNum.ToString();
                lb4.Text = (--pageNum).ToString();
                lb3.Text = (--pageNum).ToString();
                lb2.Text = (--pageNum).ToString();
                lb1.Text = (--pageNum).ToString();
                lb1.CommandName = lb1.Text;
                lb2.CommandName = lb2.Text;
                lb3.CommandName = lb3.Text;
                lb4.CommandName = lb4.Text;
                lb5.CommandName = lb5.Text;
                InitButtons();
            }
            else if (toPage <= gvPlanedTools.PageCount)
            {
                int div = toPage / pageNum;
                int mod = gvPlanedTools.PageCount % pageNum + 1;

                lb1.Text = (div * pageNum).ToString();
                lb1.CommandName = lb1.Text;
                lb2.Text = (div * pageNum + 1).ToString();
                lb2.CommandName = lb2.Text;
                lb3.Text = (div * pageNum + 2).ToString();
                lb3.CommandName = lb3.Text;
                lb4.Text = (div * pageNum + 3).ToString();
                lb4.CommandName = lb4.Text;
                lb5.Text = (div * pageNum + 4).ToString();
                lb5.CommandName = lb5.Text;
                InitButtons();
                ShowOrHideLinkButton(false);

                DefaultLinkButton(mod);
            }
        }
        private void DefaultLinkButton(int pageCount)
        {
            for (int i = 1; i <= pageCount; i++)
            {
                LinkButton lb = new LinkButton();
                lb.ID = "lb" + i;
                InitLinkButton(lb);
            }
        }
        private void InitLinkButton(LinkButton lb)
        {
            switch (lb.ID)
            {
                case "lb1":
                    lb1.Visible = true;
                    lb1.Enabled = true;
                    break;
                case "lb2":
                    lb2.Visible = true;
                    lb2.Enabled = true;
                    break;
                case "lb3":
                    lb3.Visible = true;
                    lb3.Enabled = true;
                    break;
                case "lb4":
                    lb4.Visible = true;
                    lb4.Enabled = true;
                    break;
                case "lb5":
                    lb5.Visible = true;
                    lb5.Enabled = true;
                    break;
            }
        }
        /// <summary>
        /// show or hide digit num
        /// </summary>
        /// <param name="flag"></param>
        private void ShowOrHideLinkButton(bool flag)
        {
            lb1.Visible = flag;
            lb1.Enabled = flag;
            lb2.Visible = flag;
            lb2.Enabled = flag;
            lb3.Visible = flag;
            lb3.Enabled = flag;
            lb4.Visible = flag;
            lb4.Enabled = flag;
            lb5.Visible = flag;
            lb5.Enabled = flag;
        }
        /// <summary>
        /// Init all buttons in the page,and control buttons to work
        /// </summary>
        private void InitButtons()
        {
            int to = gvPlanedTools.PageSize * (gvPlanedTools.PageIndex + 1);
            int from = to - (gvPlanedTools.PageSize - 1);
            txtNowPage.Text = from.ToString();
            txtAllPage.Text = to.ToString();
            txtTotal.Text = ViewState["PageCount"].ToString();
            int quotient = gvPlanedTools.PageCount / AppConstants.PAGENUMBER;

            cmdbegin.Enabled = false;
            cmdbefore.Enabled = false;
            cmdafter.Enabled = false;
            cmdend.Enabled = false;

            PageButtonWork();
           
            if (quotient == 0)
            {
                DefaultLinkButton(gvPlanedTools.PageCount);
            }
            else
            {
                ShowOrHideLinkButton(true);
            }

        }
        /// <summary>
        /// Control the button of first,last,next and prevoius in page to work 
        /// </summary>
        private void PageButtonWork() {
            if (gvPlanedTools.PageCount > 1)
            {
                cmdbegin.Enabled = true;
                cmdbefore.Enabled = true;
                cmdafter.Enabled = true;
                cmdend.Enabled = true;

                if (gvPlanedTools.PageIndex == 0)
                {
                    cmdbegin.Enabled = false;
                    cmdbefore.Enabled = false;
                }
                if (gvPlanedTools.PageIndex == gvPlanedTools.PageCount - 1)
                {
                    cmdafter.Enabled = false;
                    cmdend.Enabled = false;
                }
            }
        }
        protected void drpPageNumbers_SelectedIndexChanged(object sender, EventArgs e)
        {
            BindView();
            InitButtons();
            InitDigitPage();
        }
        /// <summary>
        /// Init digit page to control the digit number show or hide
        /// </summary>
        private void InitDigitPage()
        {
            ShowOrHideLinkButton(false);
            int quotient = gvPlanedTools.PageIndex / AppConstants.PAGENUMBER;
            int mod = gvPlanedTools.PageCount % AppConstants.PAGENUMBER + 1;
            //Gridview page count is less than or equals to 5
            if (quotient == 0)
            {
                DefaultLinkButton(gvPlanedTools.PageCount);
            }
            else
            {
                DefaultLinkButton(mod);
            }
        }
        private void InitDrp()
        {
            drpPageNumbers.Items.Clear();
            ListItem item = new ListItem("10");
            drpPageNumbers.Items.Insert(0, item);
            item = new ListItem("20");
            drpPageNumbers.Items.Insert(1, item);
        }

        private String ControlDrp
        {
            set
            {
                drpPageNumbers.SelectedValue = value;
            }
            get
            {
                return drpPageNumbers.SelectedValue;
            }
        }

        protected void gvPlanedTools_Sorting(object sender, GridViewSortEventArgs e)
        {
            string sortExpression = e.SortExpression.ToString();
            string sortDirection = "ASC";
            if (sortExpression == gvPlanedTools.Attributes["SortExpression"])
            {
                sortDirection = (gvPlanedTools.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
            }
            gvPlanedTools.Attributes["SortExpression"] = sortExpression;
            gvPlanedTools.Attributes["SortDirection"] = sortDirection;

            BindView();
        }
        private void NowDigitNum()
        {
            int nowPage = gvPlanedTools.PageIndex + 1;
            int quotient = nowPage / 5;
            string lbID = "lb";
            if (quotient == 0)
            {
                lbID += nowPage;
            }
            else
            {
                lbID += (nowPage - 4);

            }
            LinkButton lbtnNow = FindDigitNum(lbID);
            HightLightDigitPage(lbtnNow);
        }
        private void HightLightDigitPage(LinkButton lbtnNow)
        {

            for (int index = 1; index <= 5; index++)
            {
                string lbtId = "lb" + index;
                LinkButton lbtn = FindDigitNum(lbtId);
                if (lbtn.ID != lbtnNow.ID)
                {
                    lbtn.CssClass = "";

                }
                else
                {
                    lbtn.CssClass = "selected";
                }
            }
        }
        private LinkButton FindDigitNum(string lbtnId)
        {
            switch (lbtnId)
            {
                case "lb1":
                    return lb1;
                case "lb2":
                    return lb2;
                case "lb3":
                    return lb3;
                case "lb4":
                    return lb4;
                default:
                    return lb5;
            }
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值