我正在为datalist.Below方法进行自定义分页获取所需的页码。 我的问题是在调试期间没有触发click事件。 任何人都可以解决问题所在。
private void BindPageNumbers(int TotalRecords)
{
int counter = 0;
for(int i=0;i<TotalRecords;i=i+5)
{
counter=counter+1;
LinkButton lnk = new LinkButton();
lnk.Click += new EventHandler(lbl_click);
lnk.ID = "lnkPage" + (counter).ToString();
lnk.Text = (counter).ToString();
pages.Controls.Add(lnk);
Label spacer = new Label();
spacer.Text = " ";
pages.Controls.Add(spacer);
}
}
void lbl_click(object sender, EventArgs e)
{
LinkButton lnk = sender as LinkButton;
int Currentpage = int.Parse(lnk.Text);
ListDataBinding_paging(2, this.Days, (Currentpage-1)*5, 5);
}
此处“ListDataBinding_paging”是填充数据列表的方法。
答案 0 :(得分:0)
您正在动态创建页面链接按钮。因此,它们需要在生命周期的早期每个回发中重新创建。我怀疑在处理事件后数据后会调用BindPageNumbers
,因此不会生成click事件。
我建议您在BindPageNumbers
中调用page_load
,以便在生命周期的早期创建按钮。您可以将总记录数存储在视图状态中。如果page_load
无效,请尝试LoadViewState
覆盖 - 在调用基本实现后输入代码 - 类似于
protected override void LoadViewState(Object savedState) { base.LoadViewState(savedState); BindPageNumbers((INT)的ViewState [ “总记录”]); }