Ask a Question related to ASP.NET Building Controls, Design and Development.
-
Divya #1
Button in custom webcontrol - event handler not working
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 Guest
-
Button Click Event Not Working
I'm a newbie to Flex. What I'm trying to do is to make a button when clicked, it prints some string. I like the code to be inside a class, if... -
Custom ListControl OnFocus Event not working
Hey All, I have created a custom control that initially shows a textbox. After the user has typed something in the TextBox a DropDownListbox is... -
One custom WebControl using it at several webpage with diffirent behaviour isnt working
Dear all, I searched a lot on internet/newsgroups, without any correct answer for my problem. The problem is: ================ I have a... -
DataGrid's UpdateCommand event handler and CancelCommand handler problem
I am having the same problem: the wrong event handler is being fired when column headings and page changes are clicked. I am using the datagrid... -
Event Handler not Working in Composite Control
peter@workingmachines.com (Peter Chang) wrote in message news:<ce2e3f1c.0306201035.36a03bd5@posting.google.com>... Perhaps it is a bug in ASP.NET... -
Divya #2
IGNORE PREVIOUS CODE - Please look at this one
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
}
Divya Guest
-
Victor Garcia Aprea [MVP] #3
Re: IGNORE PREVIOUS CODE - Please look at this one
Hi Divya,
By quickly browsing at your code I can see that you want to create a
composite custom control. There are a few things that you need to do when
coding a composite control:
a) Make your control implement the INamingContainer marker interface. This
is required in order for your child controls to get proper formed IDs (i.e.:
parentid:childid). Note this is a marker interface (no methods to implement)
so you should only modify your control declaration this way:
[C#]
public class WebCustomControl1 : System.Web.UI.WebControls.WebControl,
System.Web.UI.INamingContainer
b) Creation of the child controls should go in the CreateChildControls
method and NOT at member definition like you're doing today. You should keep
the member definition if you want but actual instantation should go in
CreateChildControls. So your code should be modified this way:by:>>> Label lblNum = new Label();
Label lblNum;
and in CreateChildControls you then instantiate the Label.
Make those changes and let me know the results, your events should be firing
ok then ;-)
--
Victor Garcia Aprea
Microsoft MVP | ASP.NET
Looking for insights on ASP.NET? Read my blog:
[url]http://obies.com/vga/blog.aspx[/url]
To contact me remove 'NOSPAM'. Please post all questions to the newsgroup
"Divya" <divyas@newmediagateway.com> wrote in message
news:92F53F14-8BB3-4C0B-9BFB-E9488C3411FA@microsoft.com...post> Sorry! I pasted the wrong code in the earlier post! Please refer to thisa simple custom control with a button and 2 labels added to a panel. My>
> Hello,
>
> This is my 1st project where I have to create a Webcontrol. I have created
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!and a submit button> ************************************************** ************************
> 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 labelcalls a method> /// encapsulated in a Panel. When the button is clicked, the event handlerbetween 1 and 6.> /// of the control - RollDice() to set the label with a random numberinitialize the label with> /// When the Page is initialized, RollDice() is called in order to> /// 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
> }
> }
Victor Garcia Aprea [MVP] Guest



Reply With Quote

