This was already answered to your post in the buildingcontrols newgroups.
When you have a question that targets multiple newsgroups please crosspost
it instead of multiposting it. Thanks!
--
Victor Garcia Aprea
Microsoft MVP | ASP.NET
Looking for insights on ASP.NET? Read my blog:
http://obies.com/vga/blog.aspx To contact me remove 'NOSPAM'. Please post all questions to the newsgroup
[quoted text, click to view] "Divya" <divyas@newmediagateway.com> wrote in message
news:89CDB43A-FF16-4A17-8D4C-5BC401338125@microsoft.com...
> Sorry! I pasted the wrong code in the earlier post! Please refer to this
post
>
> Hello,
>
> This is my 1st project where I have to create a Webcontrol. I have created
a simple custom control with a button and 2 labels added to a panel. My
problem is that the event handler that I have assigned to the button
[private void btnSubmit_Click()], is not getting invoked. Could anyone
please go thru the code and let me know what I am missing here? Thanks in
advance!
[quoted text, click to view] > **************************************************************************
> My custom control is as follows -
>
> using System;
> using System.Web;
> using System.Web.UI;
> using System.Web.UI.WebControls;
> using System.ComponentModel;
> using System.Drawing;
>
> namespace WebControlLibrary1
> {
> /// <summary>
> /// This WebControl simulates the rolling of a die. It consists of a label
and a submit button
> /// encapsulated in a Panel. When the button is clicked, the event handler
calls a method
> /// of the control - RollDice() to set the label with a random number
between 1 and 6.
> /// When the Page is initialized, RollDice() is called in order to
initialize the label with
> /// a value.
> /// </summary>
>
> public class WebCustomControl1 : System.Web.UI.WebControls.WebControl
> {
> int dice_num;
> Label lblNum = new Label();
> Button btnSubmit = new Button();
> Label lblComments = new Label();
> Panel MainPanel = new Panel();
>
> [Bindable(true),
> Category("Appearance"),
> DefaultValue("")]
> public int DiceNum
> {
> get
> {
> return dice_num;
> }
> set
> {
> dice_num = value;
> if(dice_num > 0 && dice_num < 7)
> lblNum.Text = dice_num.ToString();
> }
> }
>
> protected void RollDice()
> {
> Random rng = new Random(System.DateTime.Now.Millisecond);
> dice_num = rng.Next(1,7);
> lblNum.Text = dice_num.ToString();
> }
>
> protected override void OnInit(EventArgs e)
> {
> base.OnInit (e);
> // Subcribe to the submit button's Click event
> btnSubmit.Text = "Submit";
> lblNum.BackColor = Color.LightBlue;
> lblNum.Width = 30;
> lblComments.Text = "In OnInit()";
> btnSubmit.Click +=new EventHandler(btnSubmit_Click);
> }
>
> protected override void CreateChildControls()
> {
> MainPanel.Controls.Add(lblNum);
> MainPanel.Controls.Add(btnSubmit);
> MainPanel.Controls.Add(lblComments);
> Controls.Add(MainPanel);
> }
>
> /// <summary>
> /// Render this control to the output parameter specified.
> /// </summary>
> /// <param name="output"> The HTML writer to write out to </param>
> protected override void RenderContents(HtmlTextWriter output)
> {
> AddAttributesToRender(output);
> MainPanel.RenderControl(output);
> }
>
> private void btnSubmit_Click(object sender, EventArgs e)
> {
> RollDice();
> lblComments.Text += "In btnSubmit_Click()";
> }
> }
> }
> **************************************************************************
> The aspx page that I am using to test this control is just a simple one -
> using System;
> using System.Collections;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Web;
> using System.Web.SessionState;
> using System.Web.UI;
> using System.Web.UI.WebControls;
> using System.Web.UI.HtmlControls;
>
> namespace WebCustomControlTest
> {
> /// <summary>
> /// Summary description for WebForm1.
> /// </summary>
> public class WebForm1 : System.Web.UI.Page
> {
> protected WebControlLibrary1.WebCustomControl1 WebCustomControl11;
>
> private void Page_Load(object sender, System.EventArgs e)
> {
> // Put user code to initialize the page here
> }
>
> #region Web Form Designer generated code
> override protected void OnInit(EventArgs e)
> {
> //
> // CODEGEN: This call is required by the ASP.NET Web Form Designer.
> //
> InitializeComponent();
> base.OnInit(e);
> }
>
> /// <summary>
> /// Required method for Designer support - do not modify
> /// the contents of this method with the code editor.
> /// </summary>
> private void InitializeComponent()
> {
> this.Load += new System.EventHandler(this.Page_Load);
>
> }
> #endregion
> }
> }