Groups | Blog | Home
all groups > asp.net webcontrols > april 2004 >

asp.net webcontrols : Button click event handler in the custom control - not working



Divya
4/30/2004 1:46:05 PM
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

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 WebControlLibrary

/// <summary
/// This WebControl simulates the rolling of a die. It consists of a label and a submit butto
/// encapsulated in a Panel. When the button is clicked, the event handler calls a metho
/// 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 wit
/// a value
/// </summary

public class WebCustomControl1 : System.Web.UI.WebControls.WebContro

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 DiceNu

ge

return dice_num

se

dice_num = value
if(dice_num > 0 && dice_num < 7
lblNum.Text = dice_num.ToString()


private void btnSubmit_Click(object sender, CommandEventArgs e

RollDice()
lblComments.Text += "In btnSubmit_Click()"

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)
btnSubmit.Text = "Submit"
lblNum.BackColor = Color.LightBlue
lblNum.Width = 30
lblComments.Text = "In OnInit()"


protected override void CreateChildControls(

MainPanel.Controls.Add(lblNum)
MainPanel.Controls.Add(btnSubmit)
MainPanel.Controls.Add(lblComments)
Controls.Add(MainPanel)


protected override void RenderContents(HtmlTextWriter output

AddAttributesToRender(output)
MainPanel.RenderControl(output)




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 WebCustomControlTes

/// <summary
/// Summary description for WebForm1
/// </summary
public class WebForm1 : System.Web.UI.Pag

protected WebControlLibrary1.WebCustomControl1 WebCustomControl11

private void Page_Load(object sender, System.EventArgs e

// Put user code to initialize the page her


#region Web Form Designer generated cod
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 modif
/// the contents of this method with the code editor
/// </summary
private void InitializeComponent(
{
this.Load += new System.EventHandler(this.Page_Load)


#endregio

Divya
4/30/2004 1:56:03 PM
Sorry! I pasted the wrong code in the earlier post! Please refer to this pos

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
*************************************************************************
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 WebControlLibrary

/// <summary
/// This WebControl simulates the rolling of a die. It consists of a label and a submit butto
/// encapsulated in a Panel. When the button is clicked, the event handler calls a metho
/// 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 wit
/// a value
/// </summary

public class WebCustomControl1 : System.Web.UI.WebControls.WebContro

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 DiceNu

ge

return dice_num

se

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 even
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 WebCustomControlTes

/// <summary
/// Summary description for WebForm1
/// </summary
public class WebForm1 : System.Web.UI.Pag

protected WebControlLibrary1.WebCustomControl1 WebCustomControl11

private void Page_Load(object sender, System.EventArgs e

// Put user code to initialize the page her


#region Web Form Designer generated cod
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 modif
/// the contents of this method with the code editor
/// </summary
private void InitializeComponent(
{
this.Load += new System.EventHandler(this.Page_Load)


#endregio

Victor Garcia Aprea [MVP]
5/1/2004 2:31:45 AM
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]
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]

AddThis Social Bookmark Button