G
Guest
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
}
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
}