public event EventHandler ButtonClick;
public int CurrentPage { get { if (ViewState["Page"] == null) { return 1; } return (int)ViewState["Page"]; } set { ViewState["Page"] = value; } }
public int RecCount { get { if (ViewState["RecCount"] == null) { return 0; } return (int)ViewState["RecCount"]; } set { ViewState["RecCount"] = value; } }
public int PageSize { get { if (ViewState["PageSize"] == null) { return 20; } return (int)ViewState["PageSize"]; } set { ViewState["PageSize"] = value; } }
public int PageCount { get { if (ViewState["PageCount"] == null) { return 0; } return (int)ViewState["PageCount"]; } set { ViewState["PageCount"] = value; } }
public int FlagGo { get { if (ViewState["FlagGo"] == null) { return 0; } return (int)ViewState["FlagGo"]; } set { ViewState["FlagGo"] = value; } }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
#region
PagerBind();
#endregion
}
}
自己搞了一个pager.ascx用来分页,原来不使用动态生成linkbutton,直接用linkbutton分页和执行都没有问题
现在在ascx中添加了一个panel,之后使用
this.Panel2.Controls.Clear();
foreach (DictionaryEntry de in hs)
{
LinkButton TempLinkButton = new LinkButton();
TempLinkButton.CommandArgument = de.Key.ToString();
TempLinkButton.Text = de.Value.ToString();
TempLinkButton.ID = "PagerLinkButton_" + de.Key.ToString();
TempLinkButton.Click += new EventHandler(JumpPage); ;
this.Panel2.Controls.Add(TempLinkButton);
}
添加控件,现在控件也有显示出来了。但是点控件之后这些动态生成的按钮就全部消失了。没有执行分页方法
protected void JumpPage(object sender, System.EventArgs e)
{ LinkButton lb = (LinkButton)sender;
int _Page = Common.Commons.ToInt32(lb.CommandArgument, 0);
Response.Write(_Page.ToString());
CurrentPage = _Page;
PagerBind();
if (ButtonClick != null)
{
ButtonClick(this, EventArgs.Empty);
}
}引用页面:
<%@ Register src="../Ctrl/Pager.ascx" tagname="Pager" tagprefix="uc1" %>
<uc1:Pager ID="Pager1" runat="server" OnButtonClick="ButtonClick" />protected void ButtonClick(object sender, EventArgs e)
{ BindData();
this.Pager1.PagerBind();
}
public int CurrentPage { get { if (ViewState["Page"] == null) { return 1; } return (int)ViewState["Page"]; } set { ViewState["Page"] = value; } }
public int RecCount { get { if (ViewState["RecCount"] == null) { return 0; } return (int)ViewState["RecCount"]; } set { ViewState["RecCount"] = value; } }
public int PageSize { get { if (ViewState["PageSize"] == null) { return 20; } return (int)ViewState["PageSize"]; } set { ViewState["PageSize"] = value; } }
public int PageCount { get { if (ViewState["PageCount"] == null) { return 0; } return (int)ViewState["PageCount"]; } set { ViewState["PageCount"] = value; } }
public int FlagGo { get { if (ViewState["FlagGo"] == null) { return 0; } return (int)ViewState["FlagGo"]; } set { ViewState["FlagGo"] = value; } }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
#region
PagerBind();
#endregion
}
}
自己搞了一个pager.ascx用来分页,原来不使用动态生成linkbutton,直接用linkbutton分页和执行都没有问题
现在在ascx中添加了一个panel,之后使用
this.Panel2.Controls.Clear();
foreach (DictionaryEntry de in hs)
{
LinkButton TempLinkButton = new LinkButton();
TempLinkButton.CommandArgument = de.Key.ToString();
TempLinkButton.Text = de.Value.ToString();
TempLinkButton.ID = "PagerLinkButton_" + de.Key.ToString();
TempLinkButton.Click += new EventHandler(JumpPage); ;
this.Panel2.Controls.Add(TempLinkButton);
}
添加控件,现在控件也有显示出来了。但是点控件之后这些动态生成的按钮就全部消失了。没有执行分页方法
protected void JumpPage(object sender, System.EventArgs e)
{ LinkButton lb = (LinkButton)sender;
int _Page = Common.Commons.ToInt32(lb.CommandArgument, 0);
Response.Write(_Page.ToString());
CurrentPage = _Page;
PagerBind();
if (ButtonClick != null)
{
ButtonClick(this, EventArgs.Empty);
}
}引用页面:
<%@ Register src="../Ctrl/Pager.ascx" tagname="Pager" tagprefix="uc1" %>
<uc1:Pager ID="Pager1" runat="server" OnButtonClick="ButtonClick" />protected void ButtonClick(object sender, EventArgs e)
{ BindData();
this.Pager1.PagerBind();
}
总结一句就是我在ascx中动态生成的linkbutton,点击的时候无效
你单步跟一下吧good luck
如果直接在aspx页面里面的话应该没问题。拿出来试试。
实在不行不要用EventHandler了