手工设置Gridview的pagerTemplate???????

johngong 2008-05-08 04:19:48
一般在设计视图来设置PagerTemplate,比如
<PagerTemplate>
<asp:LinkButton ID="FirstButton" Text="首页" CommandName="Page" CommandArgument="First"
runat="Server" ForeColor="White" />
<asp:LinkButton ID="LastButton" Text="末页" CommandName="Page" CommandArgument="Last"
runat="Server" ForeColor="White" />
</PagerTemplate>
PagerTemplate
现在我想通过编程的方式来设置PagerTemplate,
gridview.PagerTemplate属性可以获取或设置PagerTemplate内容.我现在通过手工编程想把上述两个LinkButton加到PagerTemplate中,不知怎么实现?
...全文
670 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
诚朴勇毅 2011-08-29
  • 打赏
  • 举报
回复

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
int PageSize = this.GridView1.PageSize;
int PageIndex = this.GridView1.PageIndex;
int PageCount = this.GridView1.PageCount;
int RecoderCount = this.GridView1.Rows.Count;

if (e.Row.RowType == DataControlRowType.Pager)
{
LinkButton Frist = new LinkButton();
LinkButton Prev = new LinkButton();
LinkButton Next = new LinkButton();
LinkButton Last = new LinkButton();
e.Row.Controls.Clear();
TableCell tc = new TableCell();
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("共" + RecoderCount.ToString() + "条记录"));
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("共" + PageCount.ToString() + "页"));
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("当前第" + (PageIndex + 1).ToString() + "页"));
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("每页" + PageSize.ToString() + "条记录"));
tc.Controls.Add(new LiteralControl("    "));

Frist.Text = "首页";
Frist.CommandName = "Page";
Frist.CommandArgument="First";
Frist.Font.Underline=false;

Prev.Text="上一页";
Prev.CommandName="Page";
Prev.CommandArgument="Prev";
Prev.Font.Underline=false;

Next.Text="下一页";
Next.CommandName="Page";
Next.CommandArgument="Next";
Next.Font.Underline=false;

Last.Text="尾页";
Last.CommandName="Page";
Last.CommandArgument="Last";
Last.Font.Underline=false;

if(PageIndex<=0)
{
Prev.Enabled=false;
Frist.Enabled = false;
}
else
{
Prev.Enabled=true;
Frist.Enabled = true;
}
tc.Controls.Add(Frist);
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(Prev);
tc.Controls.Add(new LiteralControl("  "));

for(int i=0;i<PageCount;i++)
{
if(i==PageIndex)
{
tc.Controls.Add(new LiteralControl("<span style='color:red;font-weight:bold'>" + (i + 1).ToString() + "</span>"));

}
else
{
LinkButton lbBtn=new LinkButton();
lbBtn.Text=(i+1).ToString();
lbBtn.CommandName="Page";
lbBtn.CommandArgument=(i+1).ToString();
lbBtn.Font.Underline=false;
tc.Controls.Add(lbBtn);
}
tc.Controls.Add(new LiteralControl("  "));
}
if(PageIndex>=PageCount)
{
Next.Enabled=false;
Last.Enabled = false;
}
else
{
Next.Enabled=true;
Last.Enabled = true;
}
tc.Controls.Add(Next);
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(Last);
tc.Controls.Add(new LiteralControl("  "));

e.Row.Controls.Add(tc);
}
wd181826571 2011-06-29
  • 打赏
  • 举报
回复
学习!学习!学习!学习!
HimeTale 2008-05-08
  • 打赏
  • 举报
回复
直接在PagerTemplate里编不就行了?
多用3元运算符。
wengyuli 2008-05-08
  • 打赏
  • 举报
回复
一楼正解!
johngong 2008-05-08
  • 打赏
  • 举报
回复
楼上的请详述,谢谢
dadou2007 2008-05-08
  • 打赏
  • 举报
回复
可以从ITemplate继承 做一个
zengxie 2008-05-08
  • 打赏
  • 举报
回复

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
int PageSize = this.GridView1.PageSize;
int PageIndex = this.GridView1.PageIndex;
int PageCount = this.GridView1.PageCount;
int RecoderCount = this.GridView1.Rows.Count;

if (e.Row.RowType == DataControlRowType.Pager)
{
LinkButton Frist = new LinkButton();
LinkButton Prev = new LinkButton();
LinkButton Next = new LinkButton();
LinkButton Last = new LinkButton();
e.Row.Controls.Clear();
TableCell tc = new TableCell();
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("共" + RecoderCount.ToString() + "条记录"));
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("共" + PageCount.ToString() + "页"));
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("当前第" + (PageIndex + 1).ToString() + "页"));
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(new LiteralControl("每页" + PageSize.ToString() + "条记录"));
tc.Controls.Add(new LiteralControl("    "));

Frist.Text = "首页";
Frist.CommandName = "Page";
Frist.CommandArgument="First";
Frist.Font.Underline=false;

Prev.Text="上一页";
Prev.CommandName="Page";
Prev.CommandArgument="Prev";
Prev.Font.Underline=false;

Next.Text="下一页";
Next.CommandName="Page";
Next.CommandArgument="Next";
Next.Font.Underline=false;

Last.Text="尾页";
Last.CommandName="Page";
Last.CommandArgument="Last";
Last.Font.Underline=false;

if(PageIndex<=0)
{
Prev.Enabled=false;
Frist.Enabled = false;
}
else
{
Prev.Enabled=true;
Frist.Enabled = true;
}
tc.Controls.Add(Frist);
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(Prev);
tc.Controls.Add(new LiteralControl("  "));

for(int i=0;i<PageCount;i++)
{
if(i==PageIndex)
{
tc.Controls.Add(new LiteralControl("<span style='color:red;font-weight:bold'>" + (i + 1).ToString() + "</span>"));

}
else
{
LinkButton lbBtn=new LinkButton();
lbBtn.Text=(i+1).ToString();
lbBtn.CommandName="Page";
lbBtn.CommandArgument=(i+1).ToString();
lbBtn.Font.Underline=false;
tc.Controls.Add(lbBtn);
}
tc.Controls.Add(new LiteralControl("  "));
}
if(PageIndex>=PageCount)
{
Next.Enabled=false;
Last.Enabled = false;
}
else
{
Next.Enabled=true;
Last.Enabled = true;
}
tc.Controls.Add(Next);
tc.Controls.Add(new LiteralControl("  "));
tc.Controls.Add(Last);
tc.Controls.Add(new LiteralControl("  "));

e.Row.Controls.Add(tc);
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧