I have a gridview and a set of image buttons for grid pages navigation inside a server control, but events of such image buttons are not being fired, could you please take a look:
Code:
public class cSCGridNavigatorPanel: WebControl, INamingContainer
{
..
protected ImageButton fbtnNext;
..
public event ImageClickEventHandler btnNext_Click;
protected void fbtnNext_Click(object sender,
ImageClickEventArgs e)
{
if (btnNext_Click != null)
btnNext_Click(sender, e);
}
..
protected override void CreateChildControls()
{
..
fbtnFirst = new ImageButton();
fbtnFirst.Click += new ImageClickEventHandler
(fbtnFirst_Click);
this.Controls.Add(fbtnFirst);
..
}
protected override void Render(HtmlTextWriter writer)
{
EnsureChildControls();
AddAttributesToRender(writer);
..
fbtnNext.RenderControl(writer);
..
}
}
Code:
public class cSCGridWithNavigatorPanel: WebControl,
INamingContainer
{
public cSCGridWithNavigatorPanel() {}
...
GridView fDataGrid;
GridNavigatorPanel fNavigatorPanelTop;
protected void MoveNext(object sender,
System.Web.UI.ImageClickEventArgs e)
{
if (fDataGrid.CurrentPageIndex <
fDataGrid.PageCount-1)
fDataGrid.CurrentPageIndex += 1;
}
protected override void CreateChildControls()
{
this.DataBind();
fNavigatorPanelTop = new cSCGridNavigatorPanel
(this.ClientID,"fNavigatorPanelBottom");
fNavigatorPanelTop.ID = "fNavigatorPanelTop";
..
fNavigatorPanelTop.btnNext_Click += new
ImageClickEventHandler(MoveNext);
..
this.Controls.Add(fNavigatorPanelTop);
}
protected override void Render(HtmlTextWriter writer)
{
EnsureChildControls();
AddAttributesToRender(writer);
..
fNavigatorPanelTop.RenderControl(writer);
..
}
}