PagedDataSource没有分页

时间:2012-03-29 15:05:50

标签: c# asp.net ajax

我已经在整个网络上搜索过,并没有发现我正在做的事情或者我的普罗姆斯的任何解决方案。 我有一个连接到mdb的xsd文件,我希望一次显示10个resukts,并且能够页面抛出所有结果,现在的状态是我每页得到62个结果,当我试图去到下一页我没有收到任何结果。 我的代码有什么问题

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainPage.aspx.cs"
Inherits="FaceBookSearchN.MainPage" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%--<%@ Register Src="~/ResultsControl.ascx" TagPrefix="Results" TagName="ResultsControl" %>--%>
<!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">
    <style type="text/css">
        .accordionHeader
        {
            border: 1px solid blue;
            color: White;
            background-color: #5078B3;
            font-family: Arial,Sans-Serif;
            font-size: 12px;
            font-weight: bold;
            padding: 5px;
            margin-top: 5px;
            cursor: pointer;
        }
        .accordionHeader a, .accordionHeaderSelected a
        {
            color: #ffffff;
            background: none;
            text-decoration: none;
        }

        .accordionHeader a:hover, .accordionHeaderSelected a:hover
        {
            background: none;
            text-decoration: underline;
        }

        .accordionHeaderSelected
        {
            border: 1px solid #2f4f4f;
            color: White;
            background-color: #5078B3;
            font-family: Arial, Sans-Serif;
            font-size: 12px;
            font-weight: bold;
            padding: 5px;
            cursor: pointer;
        }

        .accordionContent
        {
            background-color: White;
            border: 1px solid,#2f4f4f;
            border-top: none;
            padding: 5px;
            padding-top: 10px;
        }
    </style>
    <title></title>
</head>
<body dir="rtl">
    <form id="form1" runat="server">
    <div>
        <table width="520px">
            <tr>
                <td>
                    <table width="100%">
                        <tr>
                            <td>
                                <asp:Label runat="server" Text="תחום" ID="lblProffesion"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:DropDownList runat="server" ID="ddlProffesion" DataTextField="profession_name"
                                    DataValueField="profession_id" OnSelectedIndexChanged="ddlProffesion_SelectedIndexChanged"
                                    AutoPostBack="true">
                                </asp:DropDownList>
                            </td>
                        </tr>
                    </table>
                </td>
                <td>
                    <table width="100%">
                        <tr>
                            <td>
                                <asp:Label runat="server" Text="אזור" ID="lblArea"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:DropDownList runat="server" ID="ddlArea" DataValueField="id_area" DataTextField="name_area"
                                    AutoPostBack="true">
                                </asp:DropDownList>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    <table width="100%">
                        <tr>
                            <td>
                                <asp:Label runat="server" Text="תפקיד" ID="lblSubProffesion"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:DropDownList runat="server" ID="ddlSubProffesion" DataValueField="tat_pofession_id"
                                    DataTextField="tat_pofession_name" AutoPostBack="true">
                                </asp:DropDownList>
                            </td>
                        </tr>
                    </table>
                </td>
                <td>
                    <table width="100%">
                        <tr>
                            <td>
                                <asp:Label runat="server" Text="אזור כתיבה חופשי" ID="lblFreetext"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:TextBox runat="server" ID="txtFreetext"></asp:TextBox>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td>
                    <asp:Button runat="server" Text="חיפוש" ID="btnSearch" OnClick="btnSearch_Click" />
                </td>
            </tr>
        </table>
        <div style="width: 520px">
            <table width="520px" id="tblHeader" runat="server" style="background-color: #5078B3;
                height: 25px">
                <tr>
                    <td>
                        <asp:Label runat="server" ID="lblJobNum" Text="מס' משרה"></asp:Label>
                    </td>
                    <td>
                        <asp:Label runat="server" ID="lblJobName" Text="שם משרה"></asp:Label>
                    </td>
                    <td>
                        <asp:Label runat="server" ID="lblJobArea" Text="אזור עבודה"></asp:Label>
                    </td>
                </tr>
            </table>
            <asp:Accordion ID="Accordion1" runat="server" AutoSize="None" FramesPerSecond="40" SelectedIndex="0" TransitionDuration="100"
                FadeTransitions="true" RequireOpenedPane="true" SuppressHeaderPostbacks="true"
                ContentCssClass="accordionContent" HeaderCssClass="accordionHeader" HeaderSelectedCssClass="accordionHeaderSelected">
            </asp:Accordion>
            <asp:Label ID="lblCurrentPage" runat="server"></asp:Label>
            <asp:Button ID="btnPrev" runat="server" Text=" << " />
            <asp:Button ID="btnNext" runat="server" Text=" >> " />
        </div>
    </div>
    <asp:ToolkitScriptManager ID="Toolkitscriptmanager1" runat="server">
    </asp:ToolkitScriptManager>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Web.UI.HtmlControls;

namespace FaceBookSearchN
{
    public partial class MainPage : System.Web.UI.Page
    {
        private DataConnectionTableAdapters.table_professionTableAdapter adapterProf;
        private DataConnectionTableAdapters.table_profession_tatTableAdapter adapterSubProf;
        private DataConnectionTableAdapters.table_areaTableAdapter adapterArea;
        private DataConnectionTableAdapters.ordersTableAdapter adapterOrdersNoParams;
        private DataConnectionTableAdapters.ordersWithParamsTableAdapter adapterOrdersWithParams;

        private DataConnection.table_professionDataTable profDT;
        private DataConnection.table_profession_tatDataTable SubProfDT;
        private DataConnection.table_areaDataTable areaDT;
        private DataConnection.ordersDataTable ordersNoParamsDT;
        private DataConnection.ordersWithParamsDataTable ordersWithParamsDT;

        PagedDataSource pds;

        public int CurrentPage 
        { 
            get
            {
                object o = this.ViewState["CurrentPage"];
                if (o == null)
                    return 0;
                else
                    return (int)o;
            }
             set
             {
                 this.ViewState["CurrentPage"] = value;
             } 
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                OnLoad();
            }
        }

        protected void OnLoad()
        {
            tblHeader.Visible = false;
            profDT = new DataConnection.table_professionDataTable();
            adapterProf = new DataConnectionTableAdapters.table_professionTableAdapter();

            areaDT = new DataConnection.table_areaDataTable();
            adapterArea = new DataConnectionTableAdapters.table_areaTableAdapter();
            adapterProf.Fill(profDT);
            adapterArea.Fill(areaDT);
            //adapter.Fill(SubProfDT);

            ddlProffesion.DataSource = profDT;
            ddlProffesion.DataBind();
            ddlProffesion.Items.Insert(0,new ListItem("בחר מקצוע", "0"));

            ddlArea.DataSource = areaDT;
            ddlArea.DataBind();
            ddlArea.Items.Insert(0, new ListItem("בחר אזור", "0"));

            ddlSubProffesion.Items.Insert(0, new ListItem("בחר תת מקצוע", "0"));
        }

        protected void ddlProffesion_SelectedIndexChanged(object sender, EventArgs e)
        {
            SubProfDT = new DataConnection.table_profession_tatDataTable();
            adapterSubProf = new DataConnectionTableAdapters.table_profession_tatTableAdapter();
            adapterSubProf.GetDataByID(int.Parse(ddlProffesion.SelectedValue));
            SubProfDT = adapterSubProf.GetDataByID(int.Parse(ddlProffesion.SelectedValue));
            ddlSubProffesion.DataSource = SubProfDT;
            ddlSubProffesion.DataBind();
            //ddlSubProffesion.Items.Insert(0, new ListItem("בחר תת מקצוע", "0"));
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            tblHeader.Visible = true;
            if (int.Parse(ddlProffesion.SelectedValue) == 0 && int.Parse(ddlArea.SelectedValue) == 0)
            {
                ordersNoParamsDT = new DataConnection.ordersDataTable();
                adapterOrdersNoParams = new DataConnectionTableAdapters.ordersTableAdapter();
                adapterOrdersNoParams.FillOrdersNoParams(ordersNoParamsDT);
                DataTable dt = new DataTable();
                dt = ordersNoParamsDT;
                pds = new PagedDataSource();
                pds.DataSource = dt.DefaultView;
                pds.AllowPaging = true;
                pds.PageSize = 10;
                pds.CurrentPageIndex = CurrentPage;
                lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() + " " + "of" + " " + pds.PageCount.ToString();
                btnPrev.Enabled = !pds.IsFirstPage;
                btnNext.Enabled = !pds.IsLastPage;
                ViewState["totalpages"] = pds.PageCount;

                for (int i = 0; i < pds.PageCount; i++)
                {

                    FileUpload fu = new FileUpload();
                    Button btnSubmit = new Button();
                    btnSubmit.Text = "שלח קורות חיים";
                    AjaxControlToolkit.AccordionPane pn;
                    pn = new AjaxControlToolkit.AccordionPane();
                    pn.ID = "pane" + i;

                    Label lblTitle = new Label();
                    Label lblJobName = new Label();
                    Label lblDesc = new Label();

                    lblTitle.Text = dt.Rows[i]["order_id"].ToString();
                    lblJobName.Text = dt.Rows[i]["description"].ToString();
                    //lblDesc.Text = dt.Rows[i]["description"].ToString();

                    //Accordion1.DataSource = pds;
                    //Accordion1.DataBind();
                    pn.HeaderContainer.Controls.Add(lblTitle);
                    pn.HeaderContainer.Controls.Add(lblJobName);


                    HtmlTable tableDesc = new HtmlTable();
                    HtmlTableRow row;
                    HtmlTableCell cell;
                    cell = new HtmlTableCell();
                    row = new HtmlTableRow();
                    cell.InnerHtml = dt.Rows[i]["notes"].ToString();
                    row.Cells.Add(cell);
                    tableDesc.Rows.Add(row);

                    fu.Width = Unit.Percentage(100.00);
                    pn.ContentContainer.Controls.Add(lblDesc);
                    pn.ContentContainer.Controls.Add(tableDesc);
                    pn.ContentContainer.Controls.Add(fu);
                    pn.ContentContainer.Controls.Add(btnSubmit);
                    Accordion1.Panes.Add(pn);

                }
                //int i = 0;
                //foreach (DataRow dr in ordersNoParamsDT)
                //{
                //    FileUpload fu = new FileUpload();
                //    AjaxControlToolkit.AccordionPane pn;
                //    pn = new AjaxControlToolkit.AccordionPane();
                //    pn.ID = "pane" + i;
                //    Label lblTitle = new Label();
                //    Label lblDesc = new Label();
                //    lblTitle.Text = dr["order_id"].ToString();
                //    //lblTitle.Text = "מס' משרה" +"|" + "שם משרה" +"|"+ "אזור עבודה"+ "|";
                //    pn.HeaderContainer.Controls.Add(lblTitle);
                //    lblDesc.Text = dr["description"].ToString();
                //    //pn.ContentContainer.Controls.Add(lblDesc);
                //    HtmlTable tableDesc = new HtmlTable();
                //    HtmlTableRow row;
                //    HtmlTableCell cell;
                //    HtmlTableCell cell2;
                //    cell = new HtmlTableCell();
                //    cell2 = new HtmlTableCell();
                //    row = new HtmlTableRow();
                //    cell.InnerHtml = dr["notes"].ToString();
                //    fu.Width = Unit.Percentage(100.00);
                //    cell2.Controls.Add(fu);
                //    row.Cells.Add(cell);
                //    tableDesc.Rows.Add(row);
                //    pn.ContentContainer.Controls.Add(tableDesc);
                //    Accordion1.Panes.Add(pn);
                //    i++;
                //}
                //Accordion1.DataSource = new System.Data.DataTableReader(ordersNoParamsDT);
                //Accordion1.DataBind();
                //ucResults.Proffesion = int.Parse(ddlProffesion.SelectedValue);
                //ucResults.SubProffesion = 0;
                //ucResults.Area = int.Parse(ddlArea.SelectedValue);
            }
            else
            {
            //    ucResults.Proffesion = int.Parse(ddlProffesion.SelectedValue);
            //    ucResults.SubProffesion = int.Parse(ddlSubProffesion.SelectedValue);
            //    ucResults.Area = int.Parse(ddlArea.SelectedValue);

            }
        }

        private void btnPrev_Click(object sender, System.EventArgs e)
        {
            // Set viewstate variable to the previous page
            CurrentPage -= 1;

            // Reload control
            //ItemsGet();
        }

        private void btnNext_Click(object sender, System.EventArgs e)
        {
            // Set viewstate variable to the next page
            CurrentPage += 1;

            // Reload control
            //ItemsGet();
        } 

    }
}

1 个答案:

答案 0 :(得分:0)

您的OnLoad()方法仅在第一页加载期间触发。每次更改页面时都需要反弹数据。尝试从Page_Load方法中删除if(!IsPostBack)并查看它是否有效。