Re: How to implement a property like ControlToValidate property?
- From: "Jeff" <weekswu@xxxxxxxxx>
- Date: Fri, 29 Apr 2005 23:38:02 -0700
Thanks for your help!
I have solved my problem!
“KMILO”编写:
> Im doing the same thing as you, but the following error appears "Unable to generate code for a value of type 'System.Web.UI.HtmlControls.HtmlInputHidden'. This error occurred while trying to generate the property value for CajaDeTexto"
> but I solve the situation implementing this typeconverter to a String property:
>
> #region TypeConverter
> public class HtmlControlConverter : StringConverter
> {
> public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
> {
> return true;
> }
> public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
> {
> return false;
> }
> public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
> {
> if ((context == null) || (context.Container == null))
> {
> return null;
> }
> Object[] serverControls = this.GetControls(context.Container);
> if (serverControls != null)
> {
> return new StandardValuesCollection(serverControls);
> }
> return null;
> }
> private object[] GetControls(IContainer container)
> {
> ArrayList availableControls = new ArrayList();
> foreach( IComponent component in container.Components )
> {
> Control serverControl = component as Control;
> if ( serverControl != null &&
> !(serverControl is Page) &&
> serverControl.ID != null &&
> serverControl.ID.Length != 0 &&
> IncludeControl(serverControl)
> )
> {
> availableControls.Add(serverControl.ID);
> }
> }
> availableControls.Sort(Comparer.Default);
> return availableControls.ToArray();
> }
> private bool IncludeControl(Control serverControl)
> {
> bool ReturnedVal = false;
> string ControlType = serverControl.GetType().ToString();
> switch(ControlType)
> {
> case "System.Web.UI.HtmlControls.HtmlInputHidden":
> ReturnedVal = true;
> break;
> case "System.Web.UI.HtmlControls.HtmlGenericControl":
> ReturnedVal = true;
> break;
> case "System.Web.UI.HtmlControls.HtmlInputText":
> ReturnedVal = true;
> break;
> case "System.Web.UI.HtmlControls.HtmlTable":
> ReturnedVal = true;
> break;
> }
> return ReturnedVal;
> }
> }
> #endregion
>
> And the implementation looks like this:
>
> #region TypeConverterImplementation
> private string _cajadetexto;
> [Bindable(false),Category("Controls"),TypeConverter(typeof(HtmlControlConverter))]
> //,EditorAttribute(typeof(System.Web.UI.Design.HtmlControlDesigner), typeof(System.Web.UI.HtmlControls.HtmlInputHidden))]
> public virtual string CajaDeTexto
> {
> get {return _cajadetexto;}
> set {_cajadetexto = value;}
> }
> #endregion
>
> This was a easy way to get out the trouble, if you knows any way better let me know it....
>
> Cheers
>
> KMILO
.
- References:
- Prev by Date: RE: How to implement a property like ControlToValidate property?
- Next by Date: How to render script code at the end of Page?
- Previous by thread: Re: How to implement a property like ControlToValidate property?
- Next by thread: createuserwizard refuese to add users due to password
- Index(es):
Relevant Pages
|
Loading