• Datatable paging,Repeater with Paging


    /// <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;
            }
        }
    
  • 相关阅读:
    linq 喜悦
    五班二组高级软件测试作业一总结
    五班二组高级软件测试进度报告
    五班二组黑盒测试实践作业进度报告(1)
    五班二组高级软件测试进度报告
    五班二组高级软件测试进度报告
    [ 语文 ] 西游记50~52回阅读笔记
    [ 具体数学 ] 0:前言
    [ 具体数学 ] 3:和式与封闭式
    [ 历史 ] 黄巢起义
  • 原文地址:https://www.cnblogs.com/geovindu/p/3570523.html
Copyright © 2020-2023  润新知