代码优先:
public class ExtendedGridView : GridView
{
private ImageButton m_btnPrint;
public ImageButton PrintButton
{
get { return m_btnPrint; }
set { m_btnPrint = value; }
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
PrintButton = new ImageButton();
PrintButton.Click += new ImageClickEventHandler(OnPrintButtonClick);
PrintButton.AlternateText = "Print";
PrintButton.ImageUrl = "../../Images/Print.png";
TableCell cell = new TableCell();
cell.Controls.Add(PrintButton);
cell.ColumnSpan = this.FooterRow.Cells.Count;
this.FooterRow.Cells.Clear();
this.FooterRow.Cells.Add(cell);
}
public void OnPrintButtonClick(object sender, ImageClickEventArgs e)
{
// Do Stuff
}
}
这段代码旨在用图像按钮替换页脚内容,并且它可以做到这一点。计划是在同一个类中处理click事件,但我无法使用'OnPrintButtonClick'方法,它不会在那里打破。但是,该页面似乎正在回复。之前在这个网站上有过这方面的问题,但我还没有看到答案。 提前致谢
答案 0 :(得分:1)
这是页面生命周期问题。
您正在ImageButton
阶段将PreRender
添加到页面(并注册您的处理程序),该阶段在调度控件事件后发生。因此,永远不会调用您的处理程序。
尝试在Load
阶段添加按钮,如果可能的话。