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;
}
}
}
Agine
最新推荐文章于 2023-10-18 15:26:28 发布