Solved

Using C# to create a button and add an onclick event

Posted on 2012-04-08
3
428 Views
Last Modified: 2012-04-10
Hello All,

I am attempting to create a button on page load (given specific criteria is met), and add an on click server side event.  The button is added to an asp place holder "SaveNew"

My code for creating the button is as follows:

 Button btnSave = new Button();
                btnSave.ID = "btnSave";
                btnSave.Text = "Save and New";
                btnSave.BorderColor = System.Drawing.Color.Navy;
                btnSave.Height = new Unit("21px");
                btnSave.ForeColor = System.Drawing.Color.Navy;
                btnSave.Font.Bold = true;
                btnSave.Font.Name = "Verdana";
                btnSave.Click += new System.EventHandler(save_new);
                SaveNew.Controls.Add(btnSave);

Open in new window


The button creates the way I would expect, but I do not believe that the event aspect of things is working correctly.  When I click on it, the function "save_new" does not fire.  It goes through the Page Loading Event but never reaches the save_new event.  Does anybody know why this might be or a better way to add a server side onclick event?

Thanks in advance!
0
Comment
Question by:uconnfb13
3 Comments
 
LVL 7

Expert Comment

by:dhawalseth
ID: 37822476
Hi,
You need to provide some background.
Where are you using this code, is it for a gridview or repeater? On which event of page life cycle or control you have written the above code?
0
 
LVL 21

Expert Comment

by:tovvenki
ID: 37822535
Hi,
Have you created a event handler like this
protected void save_new(object sender, EventArgs e)
        {
}

in which event handler are you creating the button??

Thanks and regards,
Venki
0
 
LVL 20

Accepted Solution

by:
BuggyCoder earned 500 total points
ID: 37822553
Given below is the code that i have used and tested and it worked fine for me:-

Here is the markup:-
Add Div in the form tag with panel in it, we will add control to this panel, this will make the control part of form tag and has its runat=server
     <div>
        <asp:Panel runat="server" ID="panel1"></asp:Panel>
        <asp:Literal runat="server" ID="litDisplay"></asp:Literal>
    </div>

Open in new window


Here is the code behind:-
using System;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var btn = new Button();
        btn.ID = "btnTest";


        btn.Click += new EventHandler(btn_Click);

        panel1.Controls.Add(btn);

    }

    void btn_Click(object sender, EventArgs e)
    {
        litDisplay.Text = "Clicked!!!";
    }
}

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now