5

dynamic imagebutton click event not getting fired please help i have created dynamic buttons in the asp.net oninit method

protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
 ImageButton img = new ImageButton();
        img.ID = "first_button";
        img.Click += new ImageClickEventHandler(first_Click);
        img.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "ClassLibrary1.image.first.gif");
        img.Attributes.Add("onmouseover", "onmousehand(this,'over')");
        img.Attributes.Add("onmouseout", "onmousehand(this,'out')");
        p1.Controls.Add(img);
        img.Dispose();
        img = new ImageButton();
        img.ID = "previous_button";
        img.Click += new ImageClickEventHandler(previous_Click);
        img.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "ClassLibrary1.image.previous.gif");
        img.Attributes.Add("onmouseover", "onmousehand(this,'over')");
        img.Attributes.Add("onmouseout", "onmousehand(this,'out')");
        p1.Controls.Add(img);
        img.Dispose();

        t1.Attributes.Add("style", "color:#666666;");
        // t1.Text = "Page " + current_page + " of " + total_pages;
        t1.ID = "text_box1";
        t1.Attributes.Add("onclick", "textbox_enable('" + t1.ClientID + "')");
        p1.Controls.Add(t1);
        img = new ImageButton();
        img.ID = "go_button";
        img.Click += new ImageClickEventHandler(go_Click);
        img.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "ClassLibrary1.image.go.GIF");
        img.Attributes.Add("onmouseover", "onmousehand(this,'over')");
        img.Attributes.Add("onmouseout", "onmousehand(this,'out')");
        p1.Controls.Add(img);
        img.Dispose();
        ImageButton img1 = new ImageButton();
        img1.ID = "next_button";
        img1.CommandName = "next_button";
        img1.CommandArgument = "next1";

        img1.Click += new ImageClickEventHandler(next_Click);
        img1.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "ClassLibrary1.image.next.gif");
        img1.Attributes.Add("onmouseover", "onmousehand(this,'over')");
        img1.Attributes.Add("onmouseout", "onmousehand(this,'out')");
        p1.Controls.Add(img1);
        //img.Dispose();
        img = new ImageButton();
        img.ID = "last_button";
        img.Click += new ImageClickEventHandler(last_Click);
        img.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "ClassLibrary1.image.last.gif");
        img.Attributes.Add("onmouseover", "onmousehand(this,'over')");
        img.Attributes.Add("onmouseout", "onmousehand(this,'out')");
        p1.Controls.Add(img);
        img.Dispose();    
   }
   private   void next_Click(object sender, ImageClickEventArgs e)
    {

        ImageButton next = (ImageButton)sender;
        string value = next.CommandArgument;
        current_page++;
        t1.Text = "Page " + current_page + "of" + total_pages;
    }
  protected override void Render(HtmlTextWriter writer)
    {

        t1.Text = "Page " + current_page + " of " + total_pages; 
        p1.RenderControl(writer);
        base.Render(writer);
    }

2 Answers 2

1

Try this

protected void Page_Load(object sender, EventArgs e)
{
    ImageButton img = new ImageButton();
    img.ID = "SampleImage";
    img.Click += new ImageClickEventHandler(img_Click);
    this.form1.Controls.Add(img);
}

void img_Click(object sender, ImageClickEventArgs e)
{
    Response.Write("Hello World");
}
Sign up to request clarification or add additional context in comments.

3 Comments

It is working for me :) And it should work. For what purpose you are disposing the ImageButton?
but it doesn't go to the click method called why is it so is there some problem in the code where should i provide the page no in the default.aspx page
Sorry I don't understand what you mean :)
0

You can define your dynamic buttons functionality in Page_Init instead of Oninit.

    protected void Page_Init(object sender, EventArgs e)
{
    ImageButton imagebutton = new ImageButton();
    imagebutton.ID = "myID";
    imagebutton.Attributes.Add("runat", "server");
    imagebutton.Click += new ImageClickEventHandler(image_Click);
    this.form1.Controls.Add(imagebutton);
}

void image_Click(object sender, ImageClickEventArgs e)
{
    //Your code here
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.