C# Don';不显示分页上的所有页面
我正在做C#的寻呼工作。我有个问题。列表时显示的页面太多。 我的看法是: 上次>> 我想要这个: 上次>> 看起来大部分工作我都做了,但这部分我没有做 谢谢 我的代码:C# Don';不显示分页上的所有页面,c#,asp.net,web-applications,pagination,paging,C#,Asp.net,Web Applications,Pagination,Paging,我正在做C#的寻呼工作。我有个问题。列表时显示的页面太多。 我的看法是: 上次>> 我想要这个: 上次>> 看起来大部分工作我都做了,但这部分我没有做 谢谢 我的代码: using System; using System.Data; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.We
using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class product_list : System.Web.UI.Page
{
protected int CurrentPage
{
get
{
// look for current page in ViewState
object o = this.ViewState["_CurrentPage"];
if (o == null)
return 0; // default to showing the first page
else
return (int)o;
}
set
{
this.ViewState["_CurrentPage"] = value;
}
}
protected int PageCount
{
get
{
// look for current page count in ViewState
object o = this.ViewState["_PageCount"];
if (o == null)
return 1; // default to just 1 page
else
return (int)o;
}
set
{
this.ViewState["_PageCount"] = value;
}
}
protected void GetItems()
{
string Firma = Session["FirmaID"].ToString();
string Pryt = "01";
string GRID = Request.QueryString["GRID"];
lblBaslik.Text = GRID;
string SQLGrup = "SQL";
SqlDataAdapter da = new SqlDataAdapter(SQLGrup, bag.Bagla());
DataTable dt = new DataTable();
da.Fill(dt);
bag.Bagla().Close();
PagedDataSource pagedData = new PagedDataSource();
DataView dv = new DataView(dt);
pagedData.AllowPaging = true;
pagedData.PageSize = 10;
pagedData.DataSource = dv;
pagedData.CurrentPageIndex = CurrentPage;
lblCurrentPage.Text = (CurrentPage + 1).ToString() + " / " + pagedData.PageCount.ToString();
PageCount = pagedData.PageCount;
// Disable Prev/Next First/Last buttons if necessary
cmdPrev.Enabled = !pagedData.IsFirstPage;
cmdFirst.Enabled = !pagedData.IsFirstPage;
cmdNext.Enabled = !pagedData.IsLastPage;
cmdLast.Enabled = !pagedData.IsLastPage;
// Wire up the page numbers
if (pagedData.PageCount > 1)
{
rptPages.Visible = true;
ArrayList pages = new ArrayList();
for (int i = 0; i < pagedData.PageCount; i++)
if (i == CurrentPage)
{
pages.Add("<div style='color:red; font-weight:bold'>" + (i + 1).ToString() + "</div>");
}
else
{
pages.Add((i + 1).ToString());
}
rptPages.DataSource = pages;
rptPages.DataBind();
}
else
{
rptPages.Visible = false;
}
rptItems.DataSource = pagedData;
rptItems.DataBind();
}
protected void cmdPrev_Click(object sender, System.EventArgs e)
{
// Set viewstate variable to the previous page
CurrentPage -= 1;
// Reload control
GetItems();
}
protected void cmdNext_Click(object sender, System.EventArgs e)
{
// Set viewstate variable to the next page
CurrentPage += 1;
// Reload control
GetItems();
}
protected void cmdFirst_Click(object sender, System.EventArgs e)
{
// Set viewstate variable to the first page
CurrentPage = 0;
// Reload control
GetItems();
}
protected void cmdLast_Click(object sender, System.EventArgs e)
{
// Set viewstate variable to the last page
CurrentPage = PageCount - 1;
// Reload control
GetItems();
}
protected void rptPages_ItemCommand(object source,
RepeaterCommandEventArgs e)
{
CurrentPage = Convert.ToInt32(e.CommandArgument) - 1;
GetItems();
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
rptPages.ItemCommand +=
new RepeaterCommandEventHandler(rptPages_ItemCommand);
}
protected override void OnLoad(EventArgs e)
{
if (Session["Kullanici"] == null) Response.Redirect("login.aspx");
base.OnLoad(e);
GetItems();
}
protected bool CurrentPageHighlight(int currPage)
{
return currPage == CurrentPage ? true : false;
}
}
使用系统;
使用系统数据;
使用系统集合;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用System.Web.UI.WebControl.WebParts;
使用System.Web.UI.HTMLControl;
使用System.Data.SqlClient;
公共部分类产品列表:System.Web.UI.Page
{
受保护的int当前页
{
得到
{
//在ViewState中查找当前页面
对象o=this.ViewState[“_CurrentPage”];
如果(o==null)
返回0;//默认显示第一页
其他的
返回(int)o;
}
设置
{
this.ViewState[“\u CurrentPage”]=值;
}
}
受保护整型分页计数
{
得到
{
//在ViewState中查找当前页数
对象o=this.ViewState[“_PageCount”];
如果(o==null)
返回1;//默认值仅为1页
其他的
返回(int)o;
}
设置
{
this.ViewState[“_PageCount”]=值;
}
}
受保护的void GetItems()
{
字符串Firma=Session[“FirmaID”].ToString();
字符串Pryt=“01”;
stringgrid=Request.QueryString[“GRID”];
lbaslik.Text=网格;
字符串SQLGrup=“SQL”;
SqlDataAdapter da=newsqldataadapter(SQLGrup,bag.Bagla());
DataTable dt=新的DataTable();
da.填充(dt);
bag.Bagla().Close();
PagedDataSource pagedData=新的PagedDataSource();
数据视图dv=新数据视图(dt);
pagedData.allowpage=true;
pagedData.PageSize=10;
pagedData.DataSource=dv;
pagedData.CurrentPageIndex=CurrentPage;
lblCurrentPage.Text=(CurrentPage+1.ToString()+“/”+pagedData.PageCount.ToString();
PageCount=pagedData.PageCount;
//如有必要,禁用上一个/下一个第一个/最后一个按钮
cmdPrev.Enabled=!pagedData.IsFirstPage;
cmdFirst.Enabled=!pagedData.IsFirstPage;
cmdNext.Enabled=!pagedData.IsLastPage;
cmdLast.Enabled=!pagedData.IsLastPage;
//把页码排好
如果(pagedData.PageCount>1)
{
rptPages.Visible=true;
ArrayList pages=新建ArrayList();
对于(int i=0;i
我的设计准则:
<form runat="server">
<table width="100%" border="0" class="pagination">
<tr>
<td style="text-align:center"> <asp:label id="lblCurrentPage" runat="server"></asp:label></td>
</tr>
<tr>
<td>
<center>
<div>
<div>
<asp:Label ID="Label1" runat="server"></asp:Label></div>
<div>
<table>
<tr>
<td>
<asp:Button ID="cmdFirst" runat="server" Text="<< First" OnClick="cmdFirst_Click"></asp:Button>
</td>
<td>
<asp:Button ID="cmdPrev" runat="server" Text="< Prev" OnClick="cmdPrev_Click"></asp:Button>
</td>
<td>
<asp:Repeater ID="rptPages" runat="server">
<HeaderTemplate>
<table cellpadding="0" cellspacing="0" border="0">
<tr class="text">
<td>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="btnPage" CommandName="Page" CommandArgument="<%# Container.DataItem %>" runat="server"><%# Container.DataItem %>
</asp:LinkButton>
</ItemTemplate>
<FooterTemplate>
</td> </tr> </table>
</FooterTemplate>
</asp:Repeater>
</td>
<td>
<asp:Button ID="cmdNext" runat="server" Text="Next>" OnClick="cmdNext_Click">
</asp:Button>
</td>
<td>
<asp:Button ID="cmdLast" runat="server" Text="Last>>" OnClick="cmdLast_Click">
</asp:Button>
</td>
</tr>
</table>
</div>
</div>
</center> </td>
</tr>
<tr>
<td>
<div class="flex">
<asp:Repeater ID="rptItems" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<section>
<img src="data:image/png;base64,<%# Eval("PIC")%>" />
<h2><%#Eval("CODE") %></h2>
<p><%#Eval("NAME") %></p>
<aside>
<ul>
<li>Fiyat: <%#Eval("PRICE") %> <%#Eval("UNIT") %></li>
<li><%#Eval("AMOUNT") %> <%#Eval("UNIT2") %></li>
</ul>
<button>ADD BASKET</button>
</aside>
</section>
</ItemTemplate>
</asp:Repeater>
</div>
</form>