/// <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" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Datatable paging,Repeater with Paging </title> <meta name="author" content="塗聚文" /> </head> <body> <form id="form1" runat="server"> <div> <table style="100%;"> <tbody> <tr> <td>id</td> <td>name:</td> </tr> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <td><%# Eval("ddno").ToString()%></td> <td><%# Eval("dd").ToString()%></td> </tr> </ItemTemplate> </asp:Repeater> </tbody> </table> <div><b>選擇答案:</b><asp:CheckBox ID="CheckBoxA" runat="server" Text="A" /><asp:CheckBox ID="CheckBoxB" runat="server" Text="B"/><asp:CheckBox ID="CheckBoxC" runat="server" Text="C"/><asp:CheckBox ID="CheckBoxD" runat="server" Text="D"/></div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="下一頁" OnClick="Button1_Click" /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div> </form> </body> </html>
public partial class ExamCNTestDisplay : System.Web.UI.Page { VIPExamQuestionsBLL vIPExamQuestionsBLL = new VIPExamQuestionsBLL(); VipExamProjectBLL vipExamProjectBLL = new VipExamProjectBLL(); VipExamProjectInfo vipExamProjectInfo = new VipExamProjectInfo(); string examProjectId = string.Empty; int fcount = 0; int _currentPage = 0; int k = 0; /// <summary> /// /// </summary> public int currentPage { set { _currentPage = value; } get { return _currentPage; } } public int getPage = 1; DataTable Tissues =new DataTable(); /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { //DataTable Tissues = (DataTable)Session["Tissues"]; if (Tissues.Rows.Count==0) { Tissues.Columns.Add("ID", typeof(int)); Tissues.Columns.Add("Answer", typeof(string)); } if (!IsPostBack) { examProjectId = Request.QueryString["DisID"]; if (k == 0) { ViewState["ExamProjectId"] = Request.QueryString["DisID"]; k++; } else { examProjectId = ViewState["ExamProjectId"].ToString(); k++; } ////Session["BackLogin"] = "ExamProjectList.aspx"; //if (object.Equals(Session["ExamAdminLogin"], null)) //{ // Jscript.AlertAndRedirect("沒有登錄無權限!", "VIPExamLogin.aspx"); //} if (!string.IsNullOrEmpty(examProjectId)) { vipExamProjectInfo = vipExamProjectBLL.SelectVipExamProject(int.Parse(examProjectId)); if (!object.Equals(vipExamProjectInfo, null)) { Page.Title = vipExamProjectInfo.ExamProjectTitle; } PagedDataSource pds = new PagedDataSource(); if (!object.Equals(vIPExamQuestionsBLL.SelectVipQuestionsExamProjectDisplay(int.Parse(examProjectId)), null)) { pds.DataSource = getdatatable(vIPExamQuestionsBLL.SelectVipQuestionsExamProjectDisplay(int.Parse(examProjectId))).DefaultView; //pds.AllowCustomPaging = true; pds.AllowPaging = true; //pds.AllowServerPaging = true; pds.PageSize = 1; fcount = pds.Count; currentPage = Convert.ToInt32(Request["page"]); //设当前页 pds.CurrentPageIndex = currentPage; getPage = currentPage; FormView1.DataSource = pds; FormView1.DataBind(); //设几个超链接 if (!pds.IsFirstPage) { lnkUp.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (currentPage - 1); //LinkButton1.ResolveClientUrl(Request.CurrentExecutionFilePath + "?page=" + (currentPage - 1)); } if (!pds.IsLastPage) { //LinkButton1.ResolveClientUrl (Request.CurrentExecutionFilePath + "?page=" + (currentPage - 1)); lnkDown.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (currentPage + 1) + "&DisID=" + examProjectId; ((Label)FormView1.Controls[0].FindControl("Label3")).Text = (currentPage + 1).ToString(); //bool ca = CheckBoxA.Checked;CheckBoxA //bool cb = CheckBoxB.Checked; //bool cc = CheckBoxC.Checked; //bool cd = CheckBoxD.Checked; //FormView1.DefaultMode = FormViewMode.Insert; CheckBox CheckBoxA = (CheckBox)FormView1.Controls[0].FindControl("CheckBoxA");//(CheckBox)FormView1.Row.FindControl("CheckBoxA");// CheckBox CheckBoxB = (CheckBox)FormView1.Controls[0].FindControl("CheckBoxB"); CheckBox CheckBoxC = (CheckBox)FormView1.Controls[0].FindControl("CheckBoxC"); CheckBox CheckBoxD = (CheckBox)FormView1.Controls[0].FindControl("CheckBoxD"); HtmlInputCheckBox CheckBox1 = (HtmlInputCheckBox)FormView1.Controls[0].FindControl("CheckBox1"); string answer = string.Empty; if (FormView1.CurrentMode == FormViewMode.ReadOnly) { // Jscript.Alert(CheckBoxB.Checked.ToString()); 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"; } } } //if (((CheckBox)FormView1.FindControl("CheckBoxA")).Checked == true) //{ // Jscript.Alert("ok"); //} string id = ((Label)FormView1.Controls[0].FindControl("Label2")).Text; Tissues.Rows.Add(int.Parse(id), answer); Jscript.Alert(id + "," + answer + "," + CheckBox1.Checked.ToString()); CheckBoxA.Checked = false; CheckBoxB.Checked = false; CheckBoxC.Checked = false; CheckBoxD.Checked = false; } else { ((Label)FormView1.Controls[0].FindControl("Label3")).Text = (currentPage + 1).ToString(); lnkDown.Visible = false; //顯示完不顯示,而顯示提交按鈕 this.Button1.Visible = true; // Jscript.Alert("end"); Session.Add("Tissues", Tissues); //(DataTable)Session["Tissues"] = Tissues; string id = ((Label)FormView1.Controls[0].FindControl("Label2")).Text; if (Tissues.Rows.Count > 0) { Jscript.Alert(Tissues.Rows[0][0].ToString()); } } } else { Jscript.Alert("還沒有添加試題"); return; } // FormView1.DataSource = vIPExamQuestionsBLL.SelectVipQuestionsExamProjectDisplay(1); // FormView1.DataBind(); } else { Jscript.Alert("沒有查找相關關項目的數據!"); return; } } } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void FormView1_PageIndexChanging(object sender, FormViewPageEventArgs e) { //FormView1.DataSource=getdatatable(vIPExamQuestionsBLL.SelectVipQuestionsExamProjectDisplay(int.Parse(examProjectId))).DefaultView; //FormView1.DataBind(); } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { if (FormView1.PageIndex == fcount) { Jscript.Alert("end"); DataTable table = Session["Tissues"] as DataTable; if (table.Rows.Count>0) { //read table and push in Sqlserver Jscript.Alert(table.Rows[0][0].ToString()); } else { //session either expired or invalid page being accessed. } } } /// <summary> /// /// </summary> /// <param name="dt"></param> /// <returns></returns> private DataTable getdatatable(DataTable table) { if (!object.Equals(table, null))// { DataTable tableDec = new DataTable(); #region ExamQuestionsProject,ExamQuestionsTitle,ExamQuestionsA,ExamQuestionsB,ExamQuestionsC,ExamQuestionsD,ExamQuestionsAnswer,ExamQuestionsDesc,ExamProjectTitle tableDec.Columns.Add("ExamQuestionsID", typeof(int)); tableDec.Columns.Add("ExamQuestionsProject", typeof(int)); tableDec.Columns.Add("ExamQuestionsTitle", typeof(string)); tableDec.Columns.Add("ExamQuestionsA", typeof(string)); tableDec.Columns.Add("ExamQuestionsB", typeof(string)); tableDec.Columns.Add("ExamQuestionsC", typeof(string));//在職狀態 tableDec.Columns.Add("ExamQuestionsD", typeof(string)); tableDec.Columns.Add("ExamQuestionsAnswer", typeof(string)); tableDec.Columns.Add("ExamQuestionsDesc", typeof(string)); tableDec.Columns.Add("ExamProjectTitle", typeof(string)); tableDec.Columns.Add("ExamProjectCheck", typeof(bool)); #endregion foreach (DataRow row in table.Rows) // Loop over the rows. { bool check = false; tableDec.Rows.Add(row["ExamQuestionsID"], row["ExamQuestionsProject"], row["ExamQuestionsTitle"], row["ExamQuestionsA"], row["ExamQuestionsB"], row["ExamQuestionsC"], row["ExamQuestionsD"], row["ExamQuestionsAnswer"], row["ExamQuestionsDesc"], row["ExamProjectTitle"], check); } return tableDec; } else { return null; } //DataColumn col = new DataColumn("check", typeof(bool)); //dt.Columns.Add(col); ////dt.Columns.AddRange(col); ////dt.Columns.AddRange("check", typeof(bool)); //for (int i=0;i<dt.Rows.Count;i++) //{ // DataRow row = dt.NewRow(); // row["check"] = false; // dt.Rows.Add(row); //} ////for(int i=0;i<dt.Rows.Count;i++) ////{ ////} //return dt; } }