Click here to Skip to main content
15,888,181 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Dear All ,
I want to web server control using asp.net that contain TextBox with RequiredFieldValidator controls. i have tried but validation control not work.

please help me thanks in advance.
C#
protected override void RenderContents(HtmlTextWriter output)
        {
            Panel mypanel = new Panel();
            TextBox txtName = new TextBox();
            txtName.ID = "txtNameVal";
            txtName.EnableViewState = true;

            RequiredFieldValidator myrqv = new RequiredFieldValidator();
            myrqv.ErrorMessage = "Please enter the value";
            myrqv.EnableViewState = true;
            myrqv.EnableTheming = true;
            myrqv.ClientIDMode = System.Web.UI.ClientIDMode.Inherit;
            myrqv.Display = ValidatorDisplay.Dynamic;
            myrqv.ValidateRequestMode = System.Web.UI.ValidateRequestMode.Inherit;
            myrqv.ViewStateMode = System.Web.UI.ViewStateMode.Inherit;

            myrqv.ControlToValidate = txtName.ID;
            //myrqv.Text = "*";
            txtName.AutoPostBack = false;
            mypanel.Controls.Add(txtName);
            mypanel.Controls.Add(myrqv);


            mypanel.RenderControl(output);

            output.Write("<br /><br />");
            string mytxt = "<br />";
            output.Write(mytxt);
            //output.Write(Text);
        }

vilas jadhav
Posted
Updated 18-Jun-14 1:54am
v2
Comments
ZurdoDev 18-Jun-14 7:39am    
What does not work?

Try this article as this might help you solving the problem:
Building an ASP.NET custom web control: a textbox and validator in one[^]
 
Share this answer
 
Hi,

I have solve this problem and it is working properly with validation controls like Rangevalidation, RegularExpressionValidator and RequiredFieldValidator

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace IFS2.BackOffice.Web.Common
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:RequiredTextBox1 runat=server>")]
public class RequiredTextBox1 : TextBox
{
private RequiredFieldValidator req;
private RegularExpressionValidator reqExpress;
private RangeValidator RangeVldtr;
public string InvalidMessage;
public string ClientScript = "true";

[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string RequiredErrMsg
{
get
{
String s = (String)ViewState["RequiredErrMsg"];
return ((s == null) ? "This Field is Mandatory " : s);
}

set
{
ViewState["RequiredErrMsg"] = value;
}
}

public enum YesNo : int
{
True=0,
False=1
}

[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
public bool RequiredField
{
get
{
object o = ViewState["RequiredField"];
if (o == null)
return false;
return (bool)o;
}

set
{
ViewState["RequiredField"] = value;
}
}


[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
public bool RangevalidationField
{
get
{
object o = ViewState["RangevalidationField"];
if (o == null)
return false;
return (bool)o;
}

set
{
ViewState["RangevalidationField"] = value;
}
}

[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
public string RangevalidationMaxVal
{
get
{
string o = (string) ViewState["RangevalidationMaxVal"];
if (o == null)
return string.Empty;
return o;
}

set
{
ViewState["RangevalidationMaxVal"] = value;
}
}

[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
public string RangevalidationMinVal
{
get
{
string o = (string)ViewState["RangevalidationMinVal"];
if (o == null)
return string.Empty;
return o;
}

set
{
ViewState["RangevalidationMinVal"] = value;
}
}

[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
public string FieldLength
{
get
{
string o = (string)ViewState["FieldLength"];
if (o == null)
return string.Empty;
return o;
}

set
{
ViewState["FieldLength"] = value;
}
}



[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
public string RangevalidationType
{
get
{
string o = (string)ViewState["RangevalidationType"];
if (o == null)
return string.Empty;
return o;
}

set
{
ViewState["RangevalidationType"] = value;
}
}


//[Bindable(true)]
//[Category("Appearance")]
//[DefaultValue("")]
//[Localizable(true)]
//public String ID {
// get
// {
// String s = (String)ViewState["ID"];
// return ((s == null) ? ClientID.ToString() : s);
// }
// set
// {
// ViewState["ID"] = value;
// }

//}


protected override void OnInit(EventArgs e)
{
if (Context != null)
{

req = new RequiredFieldValidator();

if (this.ID == null)
{
this.ID = "RequiredTextBox1" + GetNumbers(ClientID).ToString();
}

RangeVldtr = new RangeValidator();
reqExpress = new RegularExpressionValidator();

//reqExpress.ValidationExpression= "^[0-9]*$"; //only for Number not letter and space
//reqExpress.ValidationExpression = "^[a-zA-Z''-'\\s]{1,40}$"; //only for Strings 1 for min character and 40 for maximum charactor

if (RangevalidationType == string.Empty)
{
reqExpress.ValidationExpression = "";
}

if (RangevalidationType != string.Empty)
{
string Req_exprMsg="";
switch (RangevalidationType)
{
case "Decimal":
case "Integer":
case "Numeric":
{
if (FieldLength != string.Empty)
{

reqExpress.ValidationExpression = "^\\d{1" + "," + FieldLength + "}$";
Req_exprMsg = "Required maximum charactor length is " + FieldLength;
}
if (FieldLength == string.Empty && RangevalidationMaxVal == string.Empty && RangevalidationMinVal ==string.Empty )
{

reqExpress.ValidationExpression = "^\\d+$";
Req_exprMsg = "Please enter the " + RangevalidationType + " value";
}


//else
//{
// reqExpress.ValidationExpression = "^\\d+$";
// Req_exprMsg = "Please enter the " + RangevalidationType + " value";
//}
}
break;
//case "Decimal":
// {
// reqExpress.ValidationExpression = "";
// Req_exprMsg = "Please enter the decimal value";
// }
// break;
case "String":
case "Text":
{
// reqExpress.ValidationExpression = "^[a-zA-Z''-'\\s]{1,40}$";
//Req_exprMsg = "Please enter the value";

if (FieldLength != string.Empty)
{
reqExpress.ValidationExpression = "^[a-zA-Z''-'\\s]{0" + "," + FieldLength + "}$";
Req_exprMsg = "Field validation length is " + FieldLength;
}
if (FieldLength == string.Empty && RangevalidationMaxVal == string.Empty && RangevalidationMinVal == string.Empty)
{
reqExpress.ValidationExpression = "^[a-zA-Z''-'\\s]$";
Req_exprMsg = "Please enter the Text value";
}
}
break;
//case "Numeric":
// {
// if (RangevalidationMinVal != string.Empty && RangevalidationMaxVal != string.Empty)
// {
// reqExpress.ValidationExpression = "^\\d[0-9]{" + RangevalidationMinVal + "," + RangevalidationMaxVal + "}*$";
// Req_exprMsg = "Please enter the Numeric value between the " + RangevalidationMinVal + " to " + RangevalidationMaxVal;
// }
// else
// {
// reqExpress.ValidationExpression = "^\\d[0-9]*$";
// Req_exprMsg = "Please enter the Numeric value";
// }
// }
//break;
case "IPAddres":
{
reqExpress.ValidationExpression = "";
Req_exprMsg = "Please enter the IP Address";
}
break;
case "E-mail":
{
reqExpress.ValidationExpression = @"^(?("")("".+?(?
Req_exprMsg = "Please enter the valid Emil Address";
}
break;
default:
reqExpress.ValidationExpression = "";
Req_exprMsg = "Please enter the value";
break;
}

reqExpress.ControlToValidate = this.ID;
reqExpress.ErrorMessage = "
" + Req_exprMsg;
reqExpress.ForeColor = System.Drawing.Color.Red;
Controls.Add(reqExpress);
}

//for RangeVldtr

if (RangevalidationType != string.Empty && RangevalidationMaxVal != string.Empty && RangevalidationMinVal != string.Empty )
{
string Range_exprMsg = "enter the value of " + RangevalidationType + " and range between " + RangevalidationMinVal + " to " + RangevalidationMaxVal;

RangeVldtr.ControlToValidate = this.ID;
RangeVldtr.MinimumValue = RangevalidationMinVal;
RangeVldtr.MaximumValue = RangevalidationMaxVal;
RangeVldtr.ErrorMessage = "
" + Range_exprMsg;
RangeVldtr.ForeColor = System.Drawing.Color.Red;
Controls.Add(RangeVldtr);
}

// for phone number "^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$"
//social security Name "^\d{3}-\d{2}-\d{4}$" like "111-111-1111"

if (RequiredField.ToString().ToLower() == "true")
{
req.ControlToValidate = this.ID;
req.ErrorMessage = "
" + RequiredErrMsg;
req.ForeColor = System.Drawing.Color.Red;
req.EnableClientScript = (this.ClientScript.ToLower() != "false");
Controls.Add(req);
}
}
}

//protected override void Render(HtmlTextWriter w)
//{
// base.Render(w);
// req.RenderControl(w);

//}

//protected override void OnPreRender(EventArgs e)
//{
// StringWriter sb = new StringWriter();
// HtmlTextWriter output = new HtmlTextWriter(sb);

// base.OnPreRender(e);
// //base.RenderControl(output);
//}

protected override void Render(HtmlTextWriter writer)
{
if (Context != null)
{
base.Render(writer);

//this.RenderContents(writer);
//req.RenderControl(writer);
this.RenderContents(writer);
}
}

//protected override void RenderContents(HtmlTextWriter writer)
//{

// // render event run 1st and then run the rendercontents event
// //base.Render(writer);
// //req.RenderControl(writer);

// base.Render(writer);
// req.RenderControl(writer);
// //Render(writer);
// //writer.Write("

hello

");
//}


protected string GetNumbers(string input)
{
return new string(input.Where(c => char.IsDigit(c)).ToArray());
}

}
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900