我对活动和代表没有任何经验。在过去的几天里,我一直在尝试从我在 SO 和其他互联网上找到的东西中做一些事情。
我正在尝试为我们的自定义分页创建一个自定义 OnPageChange 事件。在我(希望)这样做之后,我被告知再做三件事;
1 - 我们控件内的“onclick 事件”
2- 使所有链接按钮调用此 onclick 事件
3- 从链接按钮的按钮点击引发 OnPageChange 事件。
到目前为止,我做了这些;
在我们的自定义分页控件内部(名称是 PagingControl)
public class PageChangeEventArgs : EventArgs
{
private int PageNum;
public PageChangeEventArgs(int PageNum)
{
this.PageNum = PageNum;
}
public int Page
{
get
{
return PageNum;
}
}
}
public class ClickEventArgs : EventArgs
{
public ClickEventArgs()
{
}
}
public delegate void PageChangeHandler(object sender, PageChangeEventArgs e);
public delegate void PageChangeClickHandler(object sender, ClickEventArgs e);
//------------------------------------------------------------------------
public partial class PagingControl : System.Web.UI.UserControl
{
//------------------------------------------------------------------------
public event PageChangeHandler PageChange;
protected virtual void OnPageChange(PageChangeEventArgs e)
{
PageChange(this, e);
}
public event PageChangeClickHandler PageChangeClick;
protected virtual void OnPageChangeClick(ClickEventArgs e)
{
PageChangeClick(this, e);
}
//------------------------------------------------------------------------
.
.
.
}
另外,我试图通过从按钮发送命令参数让 OnPageChange 知道它是哪个页面。一个例子;
btnNext.Text = String.Format("<a href=\"{0}\"><b>{1}</b></a> ",
GetPagingUrl(Convert.ToString(this.CurrentPageId + 1)), "<img src='../../img/next.gif' border='0' />");
btnNext.CommandArgument = Convert.ToString(this.CurrentPageId + 1);
这些对我来说都是新的和陌生的,我不知道如何获得按钮和事件处理程序的谈话。
我主要使用这个页面来完成任务:http: //www.windowsdevcenter.com/pub/a/dotnet/2002/04/15/events.html