【发布时间】:2012-07-27 20:22:12
【问题描述】:
我需要在我的网页上进行分页。我为此使用 PagedDataSource。但我需要在 .aspx 上枚举页面,因此我将LinkButtons 动态添加到PlaceHolder 并为所有这些页面写一个Eventhandler。它显示和工作正常。在第一次点击时Eventhandler 被触发。在第二个它不火。第三个是。等等……有什么想法吗?
protected void Page_Load(object sender, EventArgs e)
{
bindrepeater();
}
private void bindrepeater()
{
var service = new Service();
var coll = service.GetPeople();
PagedDataSource Pds1 = new PagedDataSource();
Pds1.DataSource = coll;
Pds1.AllowPaging = true;
Pds1.PageSize = 10;
Pds1.CurrentPageIndex = CurrentPage;
Repeater1.DataSource = Pds1;
Repeater1.DataBind();
var count = (coll.Count / 10) + 1;
pages.Controls.Clear();
for (int i = 1; i < count; i++)
{
var lb = new LinkButton() { Text = i.ToString(), CssClass = "hrefia" };
lb.Click += new EventHandler(lb_Click);
pages.Controls.Add(lb);
}
}
protected void lb_Click(object sender, EventArgs e)
{
var lb = (LinkButton)sender;
CurrentPage = int.Parse(lb.Text);
bindrepeater();
}
public int CurrentPage
{
get
{
object s1 = this.ViewState["CurrentPage"];
if (s1 == null)
{
return 0;
}
else
{
return Convert.ToInt32(s1);
}
}
set { this.ViewState["CurrentPage"] = value; }
}
【问题讨论】:
-
你好,问题是你必须为你的 LinkButton 设置一个 ID 才能正常工作
-
我添加了它,现在它永远不会触发。完全停止射击
-
你好,我试过了,在设置点击处理程序之前它可以工作(你确定设置lb.ID = ...)吗?
-
工作!但是很奇怪。我添加了 var lb = new LinkButton() { ID = Guid.NewGuid().ToString(), Text = i.ToString(), CssClass = "hrefia" }; 像这样,但它没有用。写下答案,我会接受。
标签: c# asp.net .net dynamic paging