GridView Click Event Not Firing

GridView Click Event Not Firing

am 22.04.2008 21:51:13 von vcuankitdotnet

Hi,

I am currently extending the GridView control and would like to add a
button to the GridView so that it will automatically render one
button
at the top of the grid. I have a click event for that button, but
everytime the button is clicked, the page posts back and the click
event does not fire (probably because the button gets created every
single time there's a postback). What is the best way for me to
create
this button and then make the click event fire?


I would like it so that I can drag my custom GridView onto an .aspx
page and not have to worry about handling any events on that page so
that it is all handled by my gridview. Is that even possible?

public class MyGridView : GridView
{
Button btnMyButton;


protected override void OnInit(EventArgs e)
{
btnMyButton = new Button();
btnMyButton.ID = "btnMyButton";
btnMyButton.Text = "Click Here";
btnMyButton.EnableViewState = true;
btnMyButton.Click += new
System.EventHandler(MyGridView_MyButtonClick);
base.OnInit(e);
}


protected override void Render(HtmlTextWriter __writer)
{
btnMyButton.RenderControl(__writer);
base.Render(__writer);
}


public void MyGridView_MyButtonClick(object sender, EventArgs
e)
{
//=== Button Click Event code goes here....
}
}

RE: GridView Click Event Not Firing

am 22.04.2008 23:25:00 von brucebarker

you never add the button to the page control collection, so there is no way
for the event framework to find it, and tell it to fire the event. you should
add to the page control collection (or as a child of a control in the
collection) in the oninit or createchildcontrols.

-- bruce (sqlwork.com)


"ADN" wrote:

> Hi,
>
> I am currently extending the GridView control and would like to add a
> button to the GridView so that it will automatically render one
> button
> at the top of the grid. I have a click event for that button, but
> everytime the button is clicked, the page posts back and the click
> event does not fire (probably because the button gets created every
> single time there's a postback). What is the best way for me to
> create
> this button and then make the click event fire?
>
>
> I would like it so that I can drag my custom GridView onto an .aspx
> page and not have to worry about handling any events on that page so
> that it is all handled by my gridview. Is that even possible?
>
> public class MyGridView : GridView
> {
> Button btnMyButton;
>
>
> protected override void OnInit(EventArgs e)
> {
> btnMyButton = new Button();
> btnMyButton.ID = "btnMyButton";
> btnMyButton.Text = "Click Here";
> btnMyButton.EnableViewState = true;
> btnMyButton.Click += new
> System.EventHandler(MyGridView_MyButtonClick);
> base.OnInit(e);
> }
>
>
> protected override void Render(HtmlTextWriter __writer)
> {
> btnMyButton.RenderControl(__writer);
> base.Render(__writer);
> }
>
>
> public void MyGridView_MyButtonClick(object sender, EventArgs
> e)
> {
> //=== Button Click Event code goes here....
> }
> }
>
>
>
>