/// <summary> /// 塗聚文 /// 20140225 /// </summary> public partial class DatatablePage : System.Web.UI.Page { /// <summary> /// 測試 分頁數據 /// </summary> DataTable pageDt; /// <summary> /// /// </summary> public void geovinduDt() { pageDt = new DataTable(); pageDt.Columns.Add("id", typeof(int)); pageDt.Columns.Add("ddno", typeof(string)); pageDt.Columns.Add("dd", typeof(string)); //dtyhdd.Rows.Add("1", "n1"); //dtyhdd.Rows.Add("2", "n2"); for (int i = 1; i <= 31; i++) { //保存到內存表中 DataRow tr = this.pageDt.NewRow(); tr["id"] = i; tr["ddno"] = i.ToString(); tr["dd"] = i.ToString() + "內容"; pageDt.Rows.Add(tr); } } /// <summary> /// 隱患地點共分多少頁 /// </summary> int verypage = 0; /// <summary> /// 隱患當前頁 /// </summary> int currentPage = 0; /// <summary> /// 每頁顯示多少數據 /// </summary> int PageSize = 1; /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> PRotected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!string.IsNullOrEmpty(Request.QueryString["page"])) { currentPage = int.Parse(Request.QueryString["page"]); } currentPage++; this.TextBox1.Text = currentPage.ToString(); //【初始化數據】 geovinduDt(); //【執行分頁顯示】 //每次顯示10條數據 需要多少次 verypage = pageDt.Rows.Count / 1; //是否有余數 int numys = pageDt.Rows.Count % 1; if (numys > 0) { currentPage++; } //comyhdd.Items.Clear(); if (currentPage >= pageDt.Rows.Count) { Button1.Enabled = false; return; } DataRow[] mMatches = pageDt.Select("(id=" + currentPage + ")"); //DataRow matches = new DataRow(); string strName = mMatches[0]["dd"].ToString(); DataSet pDS = new System.Data.DataSet(); System.Data.DataTable mDT = pageDt.Clone(); mDT.Clear(); //mDT.TableName = mTableName; //mDT = mDT.Clone(); for (int i = 0; i < mMatches.Length; i++) { mDT.Rows.Add(mMatches[i].ItemArray); } pDS.Tables.Add(mDT); //1 Repeater1.DataSource = GetPagedTable(pageDt, currentPage, PageSize); Repeater1.DataBind(); //2 //Repeater1.DataSource = pDS; //Repeater1.DataBind(); this.TextBox1.Text = strName; //Repeater1.DataSource = GetPagedTable(pageDt, yhdddqi, PageSize); //Repeater1.DataBind(); this.Label1.Text = currentPage.ToString() + "/" + verypage; } } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { verypage = 1; //下一頁 if (!string.IsNullOrEmpty(Request.QueryString["page"])) { currentPage = int.Parse(Request.QueryString["page"]); } currentPage++; geovinduDt(); if (currentPage >= pageDt.Rows.Count) { Button1.Enabled = false; return; } DataRow[] mMatches = pageDt.Select("(id=" + currentPage + ")"); //DataRow matches = new DataRow(); string strName = mMatches[0]["dd"].ToString(); this.TextBox1.Text = strName; string answer = string.Empty; if (CheckBoxA.Checked == true) { answer = "A"; } if (CheckBoxB.Checked == true) { if (!string.IsNullOrEmpty(answer)) { answer = answer + "," + "B"; } else { answer = "B"; } } if (CheckBoxC.Checked == true) { if (!string.IsNullOrEmpty(answer)) { answer = answer + "," + "C"; } else { answer = "C"; } } if (CheckBoxD.Checked == true) { if (!string.IsNullOrEmpty(answer)) { answer = answer + "," + "D"; } else { answer = "D"; } } Jscript.Alert(answer); this.Label1.Text = currentPage.ToString() + "/" + verypage; Response.Redirect("DatatablePage.aspx?page=" + (currentPage) + "&name=" + strName); } /// <summary> /// DataTable分頁 /// </summary> /// <param name="dt">DataTable</param> /// <param name="PageIndex">頁索引,注意:從1開始</param> /// <param name="PageSize">每頁大小</param> /// <returns></returns> public static DataTable GetPagedTable(DataTable dt, int currentPageIndex, int pageSize) { //1 //判斷當前索引 if (currentPageIndex == 0) return dt; //從數據集合拷貝數據 DataTable newdt = dt.Copy(); //數據清空 newdt.Clear(); //開始數據索引 = 當前頁-1 x 每頁大小 int rowbegin = (currentPageIndex - 1) * pageSize; //結束數據索引 = 當前頁 x 每頁大小 int rowend = currentPageIndex * pageSize; //開始數據索引 大于等于 當前數據集合大小 if (rowbegin >= dt.Rows.Count) return newdt; //結束數據索引 大于 當前數據集合大小 if (rowend > dt.Rows.Count) rowend = dt.Rows.Count; //遍歷數據 for (int i = rowbegin; i <= rowend - 1; i++) { DataRow newdr = newdt.NewRow(); DataRow dr = dt.Rows[i]; foreach (DataColumn column in dt.Columns) { newdr[column.ColumnName] = dr[column.ColumnName]; } newdt.Rows.Add(newdr); } return newdt; //2 //if (currentPageIndex == 0) //{ //return dt; //} //DataTable newdt = dt.Clone();// dt.Copy(); //int rowbegin = (currentPageIndex - 1) * pageSize;//當前頁的第一條數據在dt中的位置 //int rowend = currentPageIndex * pageSize;//當前頁的最后一條數據在dt中的位置 //if (rowbegin >= dt.Rows.Count) //{ // return newdt; //} //if (rowend > dt.Rows.Count) //{ // rowend = dt.Rows.Count; //} //DataView dv = dt.DefaultView; //for (int i = rowbegin; i <= rowend - 1; i++) //{ // newdt.ImportRow(dv[i].Row); //} //return newdt; } }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DatatablePage.aspx.cs" Inherits="ShoppingDeals.Admin.VipHKExamSystem.DatatablePage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
新聞熱點
疑難解答