頁面調用時使用的代碼:
if (!IsPostBack)
{
Search1.TableName = "chongzhiLog";
Search1.OrderType = "desc";
Search1.OrderField = "addTime";
//if (ht["GameItemAddLog_shichang"].ToString() == "1")//擁有財務許可權提取市場已審核財務未審核記錄
//{
Search1.SqlWhere = "Type='贈送' and flagShichang='未審核' and state='未審核'";
//}
Search1.PageSize = 10;
Search1.DataControlName = "GridView1";
}
前台代碼編輯:
<div>
<asp:Label ID="Label2" runat="server" Font-Size="9pt">共</asp:Label> <span
style="font-family: 宋體"> </span>
<asp:Label ID="lbl_RecordCnt" runat="server" Font-Size="9pt"></asp:Label>
<asp:Label ID="Label3" runat="server" Font-Size="9pt">項</asp:Label><span style="font-family: Times New Roman"> </span>
<asp:Label ID="Label4" runat="server" Font-Size="9pt" ForeColor="Black">|</asp:Label>
<asp:LinkButton ID="lkbFirst" runat="server" CommandArgument="First" Enabled="False"
Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">首頁</asp:LinkButton>
<asp:LinkButton ID="lkbPre" runat="server" CommandArgument="Pre" Enabled="False"
Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">上一頁</asp:LinkButton>
<asp:LinkButton ID="lkbNext" runat="server" CommandArgument="Next" Enabled="False"
Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">下一頁</asp:LinkButton>
<asp:LinkButton ID="lkbLast" runat="server" CommandArgument="Last" Enabled="False"
Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">末頁</asp:LinkButton>
<asp:Label ID="Label5" runat="server" Font-Size="9pt" ForeColor="Black">|</asp:Label>
<asp:Label ID="Label6" runat="server" Font-Size="9pt">轉到</asp:Label><asp:TextBox ID="txt_CurrentPage"
runat="server" AutoPostBack="True" Enabled="False" style="width:20px; text-align:center" CssClass="input" OnTextChanged="txt_CurrentPage_TextChanged"></asp:TextBox><asp:Label ID="Label8" runat="server" Font-Size="9pt" ForeColor="Black">/</asp:Label>
<asp:Label ID="lbl_PageCnt" runat="server" Font-Size="9pt"></asp:Label>
<asp:Label ID="Label9" runat="server" Font-Size="9pt">頁</asp:Label>
</div>
後台代碼:
if (!IsPostBack)
{
if (this.InitBindData)
{
//預設顯示為第幾頁
ViewState["CurrentPage"] = ViewState["CurrentPage"] == null || ViewState["CurrentPage"].ToString() == "" ? "1" : ViewState["CurrentPage"].ToString();
//每頁顯示記錄總數
ViewState["PageSize"] = ViewState["PageSize"] == null || ViewState["PageSize"].ToString() == "" ? 10 : int.Parse(ViewState["PageSize"].ToString());
this.BindGridData();
}
}
protected void ChangePage(object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
int PageCount = this.GetPageCount();
int CurrentPage = int.Parse(ViewState["CurrentPage"].ToString());
string Change = e.CommandArgument.ToString();
if (Change == "Pre") //上一頁
{
if (CurrentPage <= 1)
{
ViewState["CurrentPage"] = 1;
}
else
{
ViewState["CurrentPage"] = CurrentPage - 1;
}
}
else if (Change == "Next") //下一頁
{
if (CurrentPage >= PageCount)
{
ViewState["CurrentPage"] = PageCount;
}
else
{
ViewState["CurrentPage"] = CurrentPage + 1;
}
}
else if (Change == "First") //首頁
{
ViewState["CurrentPage"] = 1;
}
else //末頁
{
ViewState["CurrentPage"] = PageCount;
}
//顯示當前頁
this.txt_CurrentPage.Text = ViewState["CurrentPage"].ToString();
this.ProData();
}
#endregion
#region 綁定資料
/// <summary>
/// 設定分頁相關的參數
/// </summary>
private void BindGridData()
{
//記錄總數
this.lbl_RecordCnt.Text = this.GetRecordCount().ToString();
//總頁數
this.lbl_PageCnt.Text = this.GetPageCount().ToString();
if (this.lbl_PageCnt.Text != "0")
{
//當前頁
this.txt_CurrentPage.Text = ViewState["CurrentPage"].ToString();
}
else
this.txt_CurrentPage.Text = "0";
//避免翻頁後再查詢出現列表沒記錄的情況/總頁數小於當前頁數
if (int.Parse(this.lbl_RecordCnt.Text) <= int.Parse(ViewState["PageSize"].ToString())||int.Parse(this.lbl_PageCnt.Text) < int.Parse(ViewState["CurrentPage"].ToString()))
{
ViewState["CurrentPage"] = 1;
this.txt_CurrentPage.Text = "1";
}
//綁定資料
this.ProData();
}
#endregion
#region 處理資料集
/// <summary>
/// 處理資料集
/// </summary>
/// <returns></returns>
private void ProData()
{
SqlConnection conn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand("GetRecordFromPage", conn);
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter prmTblName = new SqlParameter("@tblName", SqlDbType.VarChar, 255);
prmTblName.Value = "" + ViewState["TableName"].ToString() + "";
cmd.Parameters.Add(prmTblName);
string retcolumns = ViewState["RetColumns"] == null || ViewState["RetColumns"].ToString() == "" ? "*" : ViewState["RetColumns"].ToString();
SqlParameter prmRetColumns = new SqlParameter("@RetColumns", SqlDbType.VarChar, 1000);
prmRetColumns.Value = retcolumns;
cmd.Parameters.Add(prmRetColumns);
string sqlwhere = ViewState["SqlWhere"] == null || ViewState["SqlWhere"].ToString() == "" ? "" : ViewState["SqlWhere"].ToString();
SqlParameter prmStrWhere = new SqlParameter("@strWhere", SqlDbType.VarChar, 1000);
prmStrWhere.Value = sqlwhere;
cmd.Parameters.Add(prmStrWhere);
SqlParameter prmOrderfld = new SqlParameter("@Orderfld", SqlDbType.VarChar, 255);
prmOrderfld.Value = ViewState["OrderField"].ToString() + "";
cmd.Parameters.Add(prmOrderfld);
SqlParameter prmPageIndex = new SqlParameter("@PageIndex", SqlDbType.Int);
prmPageIndex.Value = int.Parse(ViewState["CurrentPage"].ToString());
cmd.Parameters.Add(prmPageIndex);
SqlParameter prmPageSize = new SqlParameter("@PageSize", SqlDbType.Int);
prmPageSize.Value = int.Parse(ViewState["PageSize"].ToString()) + "";
cmd.Parameters.Add(prmPageSize);
string ordertype = ViewState["OrderType"] == null || ViewState["OrderType"].ToString() == "" ? "asc" : ViewState["OrderType"].ToString();
SqlParameter prmOrderType = new SqlParameter("@OrderType", SqlDbType.VarChar, 50);
prmOrderType.Value = ordertype;
cmd.Parameters.Add(prmOrderType);
//cmd.Parameters.Add("@tblName", "" + ViewState["TableName"].ToString() + "");
//string retcolumns = ViewState["RetColumns"] == null || ViewState["RetColumns"].ToString() == "" ? "*" : ViewState["RetColumns"].ToString();
//cmd.Parameters.Add("@RetColumns", retcolumns);
//string sqlwhere = ViewState["SqlWhere"] == null || ViewState["SqlWhere"].ToString() == "" ? "" : ViewState["SqlWhere"].ToString();
//cmd.Parameters.Add("@strWhere", sqlwhere);
//cmd.Parameters.Add("@Orderfld", "" + ViewState["OrderField"].ToString() + "");
//cmd.Parameters.Add("@PageIndex", int.Parse(ViewState["CurrentPage"].ToString()));
//cmd.Parameters.Add("@PageSize", "" + int.Parse(ViewState["PageSize"].ToString()) + "");
//string ordertype = ViewState["OrderType"] == null || ViewState["OrderType"].ToString() == "" ? "asc" : ViewState["OrderType"].ToString();
//cmd.Parameters.Add("@OrderType", ordertype);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
//找到父頁面控制項並綁定(這裡只對DataGrid控制項綁定)
GridView gv = (GridView)this.Page.FindControl("" + ViewState["DataControlName"].ToString() + "");
gv.DataSource = ds;
gv.DataBind();
gv.Dispose();
cmd.Dispose();
conn.Close();
//控制分頁按扭狀態
this.StatsLinkButton();
}