Pagination 如何突出显示PagedDataSource中的页码以对中继器进行分页
我正在使用PagedDataSource对Repeater进行分页,它工作得很好,但有没有办法突出显示选定的页码或将其加粗。我尝试了css、itemcommand和click事件,但没有运气 提前谢谢 中继器:Pagination 如何突出显示PagedDataSource中的页码以对中继器进行分页,pagination,repeater,linkbutton,Pagination,Repeater,Linkbutton,我正在使用PagedDataSource对Repeater进行分页,它工作得很好,但有没有办法突出显示选定的页码或将其加粗。我尝试了css、itemcommand和click事件,但没有运气 提前谢谢 中继器: <asp:Repeater ID="repeaterPager" runat="server" OnItemCommand="repeaterPager_ItemCommand"> <ItemTemplate> <asp:Link
<asp:Repeater ID="repeaterPager" runat="server" OnItemCommand="repeaterPager_ItemCommand">
<ItemTemplate>
<asp:LinkButton CssClass="sayfaNo" ID="btnPage" CommandName="Page" CommandArgument="<%#Container.DataItem %>" runat="server">
<%# Container.DataItem %></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
代码隐藏:
private void MakeleleriGetir()
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("SELECT p.PostID,p.Title,p.DateTime,p.PostShort,p.CategoryID,i.SmallFileName,c.CategoryName From Posts as p inner join Resimler as i ON p.PostID = i.PostID inner join Categories as c On p.CategoryID = c.CategoryID", cnn);
DataTable dt = new DataTable();
da.Fill(dt);
PagedDataSource pds = new PagedDataSource();
pds.DataSource = dt.DefaultView;
pds.AllowPaging = true;
pds.PageSize = 4;
pds.CurrentPageIndex = CurrentPage;
PageCount = pds.PageCount;
btnPrevious.Enabled = !pds.IsFirstPage;
btnNext.Enabled = !pds.IsLastPage;
if (pds.PageCount > 1)
{
repeaterPager.Visible = true;
ArrayList pages = new ArrayList();
for (int i = 0; i < pds.PageCount; i++)
{
{
pages.Add((i + 1).ToString());
}
}
repeaterPager.DataSource = pages;
repeaterPager.DataBind();
}
else
{
repeaterPager.Visible = false;
}
RepeaterPosts.DataSource = pds;
RepeaterPosts.DataBind();
}
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;
}
}
public int PageCount
{
get
{
if (ViewState["_PageCount"] != null)
return Convert.ToInt32(ViewState["_PageCount"]);
else
return 0;
}
set
{
ViewState["_PageCount"] = value;
}
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
repeaterPager.ItemCommand += new RepeaterCommandEventHandler(repeaterPager_ItemCommand);
}
protected void repeaterPager_ItemCommand(object source, RepeaterCommandEventArgs e)
{
CurrentPage = Convert.ToInt32(e.CommandArgument) - 1;
MakeleleriGetir();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
MakeleleriGetir();
}
protected void btnNext_Click(object sender, EventArgs e)
{
CurrentPage += 1;
MakeleleriGetir();
}
protected void btnPrevious_Click(object sender, EventArgs e)
{
CurrentPage -= 1;
MakeleleriGetir();
}
}
}
private void MakeleleriGetir()
{
SqlConnection cnn=新的SqlConnection(ConfigurationManager.ConnectionString[0].ConnectionString);
SqlDataAdapter da=new SqlDataAdapter(“选择p.PostID、p.Title、p.DateTime、p.PostShort、p.CategoryID、i.SmallFileName、c.CategoryName作为p内部连接的帖子作为p.PostID=i.PostID上的i的帖子作为p.CategoryID=c.CategoryID上的c的内部连接类别”,cnn);
DataTable dt=新的DataTable();
da.填充(dt);
PagedDataSource pds=新的PagedDataSource();
pds.DataSource=dt.DefaultView;
pds.allowpage=true;
pds.PageSize=4;
pds.CurrentPageIndex=CurrentPage;
PageCount=pds.PageCount;
btnprevous.Enabled=!pds.IsFirstPage;
btnNext.Enabled=!pds.IsLastPage;
如果(pds.PageCount>1)
{
repeaterpage.Visible=true;
ArrayList pages=新建ArrayList();
对于(int i=0;i
逻辑:
使用ItemDataBound事件并将currentpage与btnPage的当前值进行比较。您可以使用FindControl获取当前btnPage值
希望有帮助
protected void repeaterPager_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
//Enabled False for current selected Page index
LinkButton lnkPage = (LinkButton)e.Item.FindControl("btnPage");
if (lnkPage.CommandArgument.ToString() == (CurrentPage+1).ToString())
{
lnkPage.Enabled = false;
lnkPage.BackColor = System.Drawing.Color.FromName("#FFCC01");
}
}