Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Web Controls > repost: custom control client values gone with postback -- no solution found...

Reply
Thread Tools

repost: custom control client values gone with postback -- no solution found...

 
 
Pipo
Guest
Posts: n/a
 
      11-27-2005
Nobody knows how to get the values provided in the client can be read in the
user-control?
If have made a Web Custom Control with 2 textboxes and 1 dropdownlist.
The user fills in my control (the textboxes and the dropdownlist) and lots
more stuff on the page.
When the user wants to save the page he'll click the save button.
The server gets the postback but I can read out the filled in controls (in
my control).
The textboxes text = "" and the dropdown.selectedindex = -1.
What do I forget/do wrong....many thanks in advance!!!
VS2005 Beta:

//Class wich containts the user controls:

using System;
using System.Collections.Generic;

using System.ComponentModel;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Drawing;

namespace cusControls

{

[ToolboxBitmap(typeof(TextBox))]

[DefaultProperty("Text")]

[ToolboxData("<{0}:TextBox runat=server></{0}:TextBox>")]

public class Textbox : TextBox

{

public enum TextBoxStyle

{

Text = 0,

Numeric = 1

}



[Bindable(true)]

[Category("Behavior")]

public TextBoxStyle StyleMode

{

get

{

if (ViewState["cusMode"] == null)

return TextBoxStyle.Text;

else

return (TextBoxStyle)ViewState["cusMode"];

}

set

{

ViewState["cusMode"] = value;

}

}

protected override void OnPreRender(EventArgs e)

{

if (StyleMode == TextBoxStyle.Numeric)

{

if (!this.Page.ClientScript.IsClientScriptBlockRegist ered(

"ValidateNumericScript"))

this.Page.ClientScript.RegisterClientScriptBlock(t ypeof(string),

"ValidateNumericScript",

"<script language=javascript>" +

"function ValidateNumeric(){" +

"var keyCode = window.event.keyCode;" +

"if (keyCode > 57 || keyCode < 4" +

"window.event.returnValue = false;}" +

"</script>");

Attributes.Add("onKeyPress", "ValidateNumeric()");

}

base.OnPreRender(e);

}

public override string Text

{

get { return (base.Text); }

set

{

if (StyleMode == TextBoxStyle.Numeric)

{

try

{

base.Text = Convert.ToInt32(value).ToString();

}

catch { };

}

else

{

base.Text = value;

}

}

}

}

[Designer(typeof(DatePickerDesigner))]

[ToolboxBitmap(typeof(Calendar))]

[ToolboxData("<{0}atePicker runat=server></{0}atePicker>")]

public class DatePicker : WebControl

{

public enum FormatStyle

{

DMY = 0,

YMD = 1,

MDY = 2

}

[Bindable(true)]

[Category("Appearance")]

public FormatStyle Format

{

get

{

if (ViewState["cusFormat"] == null)

return FormatStyle.DMY;

else

return (FormatStyle)ViewState["cusFormat"];

}

set

{

ViewState["cusFormat"] = value;

}

}

public string SelectedDate

{

get

{

// How to retrieve the values of the Textboxes txtDay and txtYear and the
selected index of the dropdowlist ddlMonth?

//Controls[x] will get an nullreference....Controls.Count gives 0 controls
back after postback.

}

set

{

//Not really needed cos the client provides these values(???)

}

}



protected override void CreateChildControls()

{

Textbox txtDay = new Textbox();

DropDownList ddlMonths = new DropDownList();

Textbox txtYear = new Textbox();

txtDay.StyleMode = Textbox.TextBoxStyle.Numeric;

txtDay.MaxLength = 2;

txtDay.Width = 15;

ddlMonths.Items.Add("January");

ddlMonths.Items.Add("February");

ddlMonths.Items.Add("March");

ddlMonths.Items.Add("April");

ddlMonths.Items.Add("May");

ddlMonths.Items.Add("Jun");

ddlMonths.Items.Add("July");

ddlMonths.Items.Add("August");

ddlMonths.Items.Add("September");

ddlMonths.Items.Add("October");

ddlMonths.Items.Add("November");

ddlMonths.Items.Add("December");

ddlMonths.SelectedIndex = (DateTime.Now.Month) - 1;

txtYear.StyleMode = Textbox.TextBoxStyle.Numeric;

txtYear.Width = 30;

switch (Format)

{

case FormatStyle.MDY:

Controls.Add(ddlMonths);

Controls.Add(txtDay);

Controls.Add(txtYear);

break;

case FormatStyle.YMD:

Controls.Add(txtYear);

Controls.Add(ddlMonths);

Controls.Add(txtDay);

break;

default:

case FormatStyle.DMY:

Controls.Add(txtDay);

Controls.Add(ddlMonths);

Controls.Add(txtYear);

break;

}

}

}

}

//Second class the designer:

using System;

using System.IO;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.Design;

namespace cusControls

{

public class DatePickerDesigner : System.Web.UI.Design.ControlDesigner

{

public override string GetDesignTimeHtml()

{

try

{

DatePicker ctl = (DatePicker)Component;

StringWriter sw = new StringWriter();

HtmlTextWriter tw = new HtmlTextWriter(sw);

TextBox txtDay = new TextBox();

txtDay.Width = 15;

DropDownList ddl = new DropDownList();

ddl.Items.Add("January");

ddl.Width = ctl.Width;

TextBox txtYear = new TextBox();

txtYear.Width = 30;

switch (ctl.Format)

{

case DatePicker.FormatStyle.MDY:

ddl.RenderControl(tw);

txtDay.RenderControl(tw);

txtYear.RenderControl(tw);

break;

case DatePicker.FormatStyle.YMD:

txtYear.RenderControl(tw);

txtDay.RenderControl(tw);

ddl.RenderControl(tw);

break;

default:

case DatePicker.FormatStyle.DMY:

txtDay.RenderControl(tw);

ddl.RenderControl(tw);

txtYear.RenderControl(tw);

break;

}

return sw.ToString();

}

catch (Exception ex)

{

return ex.Message;

}

}

}

}




 
Reply With Quote
 
 
 
 
Pipo
Guest
Posts: n/a
 
      11-28-2005
I have found it myself.....
Problem solved.

"Pipo" <> schreef in bericht
news:...
> Nobody knows how to get the values provided in the client can be read in
> the user-control?
> If have made a Web Custom Control with 2 textboxes and 1 dropdownlist.
> The user fills in my control (the textboxes and the dropdownlist) and lots
> more stuff on the page.
> When the user wants to save the page he'll click the save button.
> The server gets the postback but I can read out the filled in controls (in
> my control).
> The textboxes text = "" and the dropdown.selectedindex = -1.
> What do I forget/do wrong....many thanks in advance!!!
> VS2005 Beta:
>
> //Class wich containts the user controls:
>
> using System;
> using System.Collections.Generic;
>
> using System.ComponentModel;
>
> using System.Web.UI;
>
> using System.Web.UI.WebControls;
>
> using System.Drawing;
>
> namespace cusControls
>
> {
>
> [ToolboxBitmap(typeof(TextBox))]
>
> [DefaultProperty("Text")]
>
> [ToolboxData("<{0}:TextBox runat=server></{0}:TextBox>")]
>
> public class Textbox : TextBox
>
> {
>
> public enum TextBoxStyle
>
> {
>
> Text = 0,
>
> Numeric = 1
>
> }
>
>
>
> [Bindable(true)]
>
> [Category("Behavior")]
>
> public TextBoxStyle StyleMode
>
> {
>
> get
>
> {
>
> if (ViewState["cusMode"] == null)
>
> return TextBoxStyle.Text;
>
> else
>
> return (TextBoxStyle)ViewState["cusMode"];
>
> }
>
> set
>
> {
>
> ViewState["cusMode"] = value;
>
> }
>
> }
>
> protected override void OnPreRender(EventArgs e)
>
> {
>
> if (StyleMode == TextBoxStyle.Numeric)
>
> {
>
> if (!this.Page.ClientScript.IsClientScriptBlockRegist ered(
>
> "ValidateNumericScript"))
>
> this.Page.ClientScript.RegisterClientScriptBlock(t ypeof(string),
>
> "ValidateNumericScript",
>
> "<script language=javascript>" +
>
> "function ValidateNumeric(){" +
>
> "var keyCode = window.event.keyCode;" +
>
> "if (keyCode > 57 || keyCode < 4" +
>
> "window.event.returnValue = false;}" +
>
> "</script>");
>
> Attributes.Add("onKeyPress", "ValidateNumeric()");
>
> }
>
> base.OnPreRender(e);
>
> }
>
> public override string Text
>
> {
>
> get { return (base.Text); }
>
> set
>
> {
>
> if (StyleMode == TextBoxStyle.Numeric)
>
> {
>
> try
>
> {
>
> base.Text = Convert.ToInt32(value).ToString();
>
> }
>
> catch { };
>
> }
>
> else
>
> {
>
> base.Text = value;
>
> }
>
> }
>
> }
>
> }
>
> [Designer(typeof(DatePickerDesigner))]
>
> [ToolboxBitmap(typeof(Calendar))]
>
> [ToolboxData("<{0}atePicker runat=server></{0}atePicker>")]
>
> public class DatePicker : WebControl
>
> {
>
> public enum FormatStyle
>
> {
>
> DMY = 0,
>
> YMD = 1,
>
> MDY = 2
>
> }
>
> [Bindable(true)]
>
> [Category("Appearance")]
>
> public FormatStyle Format
>
> {
>
> get
>
> {
>
> if (ViewState["cusFormat"] == null)
>
> return FormatStyle.DMY;
>
> else
>
> return (FormatStyle)ViewState["cusFormat"];
>
> }
>
> set
>
> {
>
> ViewState["cusFormat"] = value;
>
> }
>
> }
>
> public string SelectedDate
>
> {
>
> get
>
> {
>
> // How to retrieve the values of the Textboxes txtDay and txtYear and the
> selected index of the dropdowlist ddlMonth?
>
> //Controls[x] will get an nullreference....Controls.Count gives 0 controls
> back after postback.
>
> }
>
> set
>
> {
>
> //Not really needed cos the client provides these values(???)
>
> }
>
> }
>
>
>
> protected override void CreateChildControls()
>
> {
>
> Textbox txtDay = new Textbox();
>
> DropDownList ddlMonths = new DropDownList();
>
> Textbox txtYear = new Textbox();
>
> txtDay.StyleMode = Textbox.TextBoxStyle.Numeric;
>
> txtDay.MaxLength = 2;
>
> txtDay.Width = 15;
>
> ddlMonths.Items.Add("January");
>
> ddlMonths.Items.Add("February");
>
> ddlMonths.Items.Add("March");
>
> ddlMonths.Items.Add("April");
>
> ddlMonths.Items.Add("May");
>
> ddlMonths.Items.Add("Jun");
>
> ddlMonths.Items.Add("July");
>
> ddlMonths.Items.Add("August");
>
> ddlMonths.Items.Add("September");
>
> ddlMonths.Items.Add("October");
>
> ddlMonths.Items.Add("November");
>
> ddlMonths.Items.Add("December");
>
> ddlMonths.SelectedIndex = (DateTime.Now.Month) - 1;
>
> txtYear.StyleMode = Textbox.TextBoxStyle.Numeric;
>
> txtYear.Width = 30;
>
> switch (Format)
>
> {
>
> case FormatStyle.MDY:
>
> Controls.Add(ddlMonths);
>
> Controls.Add(txtDay);
>
> Controls.Add(txtYear);
>
> break;
>
> case FormatStyle.YMD:
>
> Controls.Add(txtYear);
>
> Controls.Add(ddlMonths);
>
> Controls.Add(txtDay);
>
> break;
>
> default:
>
> case FormatStyle.DMY:
>
> Controls.Add(txtDay);
>
> Controls.Add(ddlMonths);
>
> Controls.Add(txtYear);
>
> break;
>
> }
>
> }
>
> }
>
> }
>
> //Second class the designer:
>
> using System;
>
> using System.IO;
>
> using System.Web;
>
> using System.Web.UI;
>
> using System.Web.UI.WebControls;
>
> using System.Web.UI.Design;
>
> namespace cusControls
>
> {
>
> public class DatePickerDesigner : System.Web.UI.Design.ControlDesigner
>
> {
>
> public override string GetDesignTimeHtml()
>
> {
>
> try
>
> {
>
> DatePicker ctl = (DatePicker)Component;
>
> StringWriter sw = new StringWriter();
>
> HtmlTextWriter tw = new HtmlTextWriter(sw);
>
> TextBox txtDay = new TextBox();
>
> txtDay.Width = 15;
>
> DropDownList ddl = new DropDownList();
>
> ddl.Items.Add("January");
>
> ddl.Width = ctl.Width;
>
> TextBox txtYear = new TextBox();
>
> txtYear.Width = 30;
>
> switch (ctl.Format)
>
> {
>
> case DatePicker.FormatStyle.MDY:
>
> ddl.RenderControl(tw);
>
> txtDay.RenderControl(tw);
>
> txtYear.RenderControl(tw);
>
> break;
>
> case DatePicker.FormatStyle.YMD:
>
> txtYear.RenderControl(tw);
>
> txtDay.RenderControl(tw);
>
> ddl.RenderControl(tw);
>
> break;
>
> default:
>
> case DatePicker.FormatStyle.DMY:
>
> txtDay.RenderControl(tw);
>
> ddl.RenderControl(tw);
>
> txtYear.RenderControl(tw);
>
> break;
>
> }
>
> return sw.ToString();
>
> }
>
> catch (Exception ex)
>
> {
>
> return ex.Message;
>
> }
>
> }
>
> }
>
> }
>
>
>
>



 
Reply With Quote
 
 
 
 
conset23
Guest
Posts: n/a
 
      12-01-2005
so share your knowlege..


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
repost: custom control client values gone with postback -- no solution found... Pipo ASP .Net 2 12-01-2005 01:04 PM
custom control client values gone with postback Pipo ASP .Net Web Controls 9 11-26-2005 09:42 PM
Re: custom control client values gone with postback Pipo ASP .Net 1 11-26-2005 09:27 PM
custom control client values gone with postback Pipo ASP .Net 3 11-25-2005 05:43 PM
Newbie:Access custom Itemplate(not datagrid/repeater/datalist) control values on postback Luhar Powell via .NET 247 ASP .Net 0 04-01-2005 04:58 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57