X
xyz
I have created a server control for asp.net using C#. Everything works fine
in Visual Studio, but when I attempt to look at the page I get an error.
Below is my code and the error. Can anybody help me determine the problem
and how I can resolve it. Thanks.
using System;
using System.ComponentModel;
using System.Globalization;
namespace LCOGTools_WebForms_SrchRcrd
{
/// <summary>
/// Summary description for PersonStructure.
/// </summary>
public class LCOGCntrlSrchRcrd
{
private string srchCntrlNm = "";
private string srchFldNm = "";
private string srchTblNm = "";
[
DescriptionAttribute ("Web form control this relates to.")
, NotifyParentPropertyAttribute (true)
, RefreshPropertiesAttribute (System.ComponentModel.RefreshProperties.All)
, BindableAttribute (System.ComponentModel.BindableSupport.Yes)
]
public string SrchCntrlNm
{
get
{
return srchCntrlNm;
}
set
{
this.srchCntrlNm = value;
}
}
[
DescriptionAttribute ("Database table field this control relates to.")
, NotifyParentPropertyAttribute (true)
, RefreshPropertiesAttribute (System.ComponentModel.RefreshProperties.All)
, BindableAttribute (System.ComponentModel.BindableSupport.Yes)
]
public string SrchFldNm
{
get
{
return srchFldNm;
}
set
{
this.srchFldNm = value;
}
}
[
DescriptionAttribute ("Database table this control relates to.")
, NotifyParentPropertyAttribute (true)
, RefreshPropertiesAttribute (System.ComponentModel.RefreshProperties.All)
, BindableAttribute (System.ComponentModel.BindableSupport.Yes)
]
public string SrchTblNm
{
get
{
return srchTblNm;
}
set
{
this.srchTblNm = value;
}
}
public override string ToString ()
{
string ls_ToString;
ls_ToString =
"srchCntrlNm==" + this.srchCntrlNm
+ "srchTblNm==" + this.srchTblNm
+ "srchFldNm==" + this.srchFldNm
;
return ls_ToString;
}
}
public class LCOGCntrlSrchRcrdConverter : ExpandableObjectConverter
{
public override bool CanConvertFrom (ITypeDescriptorContext context, Type t)
{
if (t == typeof(string))
{
return true;
}
return base.CanConvertFrom(context, t);
}
public override object ConvertFrom (ITypeDescriptorContext context,
CultureInfo info, object value)
{
LCOGCntrlSrchRcrd lo_CurrSrchRcrd = new LCOGCntrlSrchRcrd ();
int li_CommaPos;
string ls_ValueIn;
string ls_WorkValue;
// Here you can parse things to get the data out there that you want.
if (value is string)
{
try
{
ls_ValueIn = (string) value;
ls_WorkValue = ls_ValueIn;
// Parse the format of srchCntrlNm,srchTblNm,srchFldNm
// Get SrchCntrlNm
li_CommaPos = ls_WorkValue.IndexOf (",");
if (li_CommaPos != -1)
{
lo_CurrSrchRcrd.SrchCntrlNm = ls_WorkValue.Substring (0, li_CommaPos);
ls_WorkValue = ls_WorkValue.Substring ((li_CommaPos+1));
} // End of if (li_CommaPos != -1).
// Get SrchFldNm
li_CommaPos = ls_WorkValue.IndexOf (",");
if (li_CommaPos != -1)
{
lo_CurrSrchRcrd.SrchFldNm = ls_WorkValue.Substring (0, li_CommaPos);
ls_WorkValue = ls_WorkValue.Substring ((li_CommaPos+1));
} // End of if (li_CommaPos != -1).
// Get SrchTblNm
li_CommaPos = ls_WorkValue.IndexOf (",");
lo_CurrSrchRcrd.SrchTblNm = ls_WorkValue;
// Return this record to the caller.
return (lo_CurrSrchRcrd);
} // End of try.
catch
{
}
// If we got this far, complain that we could not parse the string.
throw new ArgumentException ("Can not convert '"
+ (string) value + "' to type LCOG Control Search Record");
} // End of if (value is string).
return base.ConvertFrom (context, info, value);
}
public override object ConvertTo (ITypeDescriptorContext context,
CultureInfo culture, object value, Type destType)
{
if (destType == typeof(string) && value is LCOGCntrlSrchRcrd)
{
string ls_ConvertToValue = "";
LCOGCntrlSrchRcrd lo_CurrSrchRcrd = (LCOGCntrlSrchRcrd) value;
if ((lo_CurrSrchRcrd.SrchCntrlNm != "") && (lo_CurrSrchRcrd.SrchCntrlNm !=
null))
{
ls_ConvertToValue = lo_CurrSrchRcrd.SrchCntrlNm + "," +
lo_CurrSrchRcrd.SrchFldNm + "," + lo_CurrSrchRcrd.SrchTblNm;
}
return ls_ConvertToValue;
}
return base.ConvertTo(context, culture, value, destType);
}
}
}
----------------------------------------------------------------------------
----
Unable to generate code for a value of type
'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error occurred while
trying to generate the property value for SearchControl.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Unable to generate code for a
value of type 'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error
occurred while trying to generate the property value for SearchControl.
Source Error:
An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of the
exception can be identified using the exception stack trace below.
Stack Trace:
[HttpException (0x80004005): Unable to generate code for a value of type
'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error occurred while
trying to generate the property value for SearchControl.]
System.Web.Compilation.CodeDomUtility.GenerateExpressionForValue(PropertyInf
o propertyInfo, Object value, Type valueType) +2253
System.Web.Compilation.TemplateControlCompiler.BuildBuildMethod(ControlBuild
er builder, Boolean fTemplate, PropertySetterEntry pse) +2538
System.Web.Compilation.TemplateControlCompiler.BuildSourceDataTreeFromBuilde
r(ControlBuilder builder, Boolean fInTemplate, PropertySetterEntry pse) +794
System.Web.Compilation.TemplateControlCompiler.BuildSourceDataTreeFromBuilde
r(ControlBuilder builder, Boolean fInTemplate, PropertySetterEntry pse) +352
System.Web.Compilation.TemplateControlCompiler.BuildSourceDataTreeFromBuilde
r(ControlBuilder builder, Boolean fInTemplate, PropertySetterEntry pse) +352
System.Web.Compilation.TemplateControlCompiler.BuildMiscClassMembers()
+51
System.Web.Compilation.PageCompiler.BuildMiscClassMembers() +10
System.Web.Compilation.BaseCompiler.BuildSourceDataTree() +1276
System.Web.Compilation.BaseCompiler.GetCompiledType() +129
System.Web.UI.PageParser.CompileIntoType() +59
System.Web.UI.TemplateParser.GetParserCacheItemThroughCompilation() +126
[HttpException (0x80004005): Unable to generate code for a value of type
'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error occurred while
trying to generate the property value for SearchControl.]
System.Web.UI.TemplateParser.GetParserCacheItemInternal(Boolean
fCreateIfNotFound) +692
System.Web.UI.TemplateParser.GetParserCacheItemWithNewConfigPath() +125
System.Web.UI.TemplateParser.GetParserCacheItem() +88
System.Web.UI.TemplateControlParser.CompileAndGetParserCacheItem(String
virtualPath, String inputFile, HttpContext context) +116
System.Web.UI.TemplateControlParser.GetCompiledInstance(String
virtualPath, String inputFile, HttpContext context) +36
System.Web.UI.PageParser.GetCompiledPageInstanceInternal(String
virtualPath, String inputFile, HttpContext context) +43
System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String
requestType, String url, String path) +44
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String
requestType, String path, String pathTranslated, Boolean useAppConfig) +699
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep
..Execute() +95
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously) +173
in Visual Studio, but when I attempt to look at the page I get an error.
Below is my code and the error. Can anybody help me determine the problem
and how I can resolve it. Thanks.
using System;
using System.ComponentModel;
using System.Globalization;
namespace LCOGTools_WebForms_SrchRcrd
{
/// <summary>
/// Summary description for PersonStructure.
/// </summary>
public class LCOGCntrlSrchRcrd
{
private string srchCntrlNm = "";
private string srchFldNm = "";
private string srchTblNm = "";
[
DescriptionAttribute ("Web form control this relates to.")
, NotifyParentPropertyAttribute (true)
, RefreshPropertiesAttribute (System.ComponentModel.RefreshProperties.All)
, BindableAttribute (System.ComponentModel.BindableSupport.Yes)
]
public string SrchCntrlNm
{
get
{
return srchCntrlNm;
}
set
{
this.srchCntrlNm = value;
}
}
[
DescriptionAttribute ("Database table field this control relates to.")
, NotifyParentPropertyAttribute (true)
, RefreshPropertiesAttribute (System.ComponentModel.RefreshProperties.All)
, BindableAttribute (System.ComponentModel.BindableSupport.Yes)
]
public string SrchFldNm
{
get
{
return srchFldNm;
}
set
{
this.srchFldNm = value;
}
}
[
DescriptionAttribute ("Database table this control relates to.")
, NotifyParentPropertyAttribute (true)
, RefreshPropertiesAttribute (System.ComponentModel.RefreshProperties.All)
, BindableAttribute (System.ComponentModel.BindableSupport.Yes)
]
public string SrchTblNm
{
get
{
return srchTblNm;
}
set
{
this.srchTblNm = value;
}
}
public override string ToString ()
{
string ls_ToString;
ls_ToString =
"srchCntrlNm==" + this.srchCntrlNm
+ "srchTblNm==" + this.srchTblNm
+ "srchFldNm==" + this.srchFldNm
;
return ls_ToString;
}
}
public class LCOGCntrlSrchRcrdConverter : ExpandableObjectConverter
{
public override bool CanConvertFrom (ITypeDescriptorContext context, Type t)
{
if (t == typeof(string))
{
return true;
}
return base.CanConvertFrom(context, t);
}
public override object ConvertFrom (ITypeDescriptorContext context,
CultureInfo info, object value)
{
LCOGCntrlSrchRcrd lo_CurrSrchRcrd = new LCOGCntrlSrchRcrd ();
int li_CommaPos;
string ls_ValueIn;
string ls_WorkValue;
// Here you can parse things to get the data out there that you want.
if (value is string)
{
try
{
ls_ValueIn = (string) value;
ls_WorkValue = ls_ValueIn;
// Parse the format of srchCntrlNm,srchTblNm,srchFldNm
// Get SrchCntrlNm
li_CommaPos = ls_WorkValue.IndexOf (",");
if (li_CommaPos != -1)
{
lo_CurrSrchRcrd.SrchCntrlNm = ls_WorkValue.Substring (0, li_CommaPos);
ls_WorkValue = ls_WorkValue.Substring ((li_CommaPos+1));
} // End of if (li_CommaPos != -1).
// Get SrchFldNm
li_CommaPos = ls_WorkValue.IndexOf (",");
if (li_CommaPos != -1)
{
lo_CurrSrchRcrd.SrchFldNm = ls_WorkValue.Substring (0, li_CommaPos);
ls_WorkValue = ls_WorkValue.Substring ((li_CommaPos+1));
} // End of if (li_CommaPos != -1).
// Get SrchTblNm
li_CommaPos = ls_WorkValue.IndexOf (",");
lo_CurrSrchRcrd.SrchTblNm = ls_WorkValue;
// Return this record to the caller.
return (lo_CurrSrchRcrd);
} // End of try.
catch
{
}
// If we got this far, complain that we could not parse the string.
throw new ArgumentException ("Can not convert '"
+ (string) value + "' to type LCOG Control Search Record");
} // End of if (value is string).
return base.ConvertFrom (context, info, value);
}
public override object ConvertTo (ITypeDescriptorContext context,
CultureInfo culture, object value, Type destType)
{
if (destType == typeof(string) && value is LCOGCntrlSrchRcrd)
{
string ls_ConvertToValue = "";
LCOGCntrlSrchRcrd lo_CurrSrchRcrd = (LCOGCntrlSrchRcrd) value;
if ((lo_CurrSrchRcrd.SrchCntrlNm != "") && (lo_CurrSrchRcrd.SrchCntrlNm !=
null))
{
ls_ConvertToValue = lo_CurrSrchRcrd.SrchCntrlNm + "," +
lo_CurrSrchRcrd.SrchFldNm + "," + lo_CurrSrchRcrd.SrchTblNm;
}
return ls_ConvertToValue;
}
return base.ConvertTo(context, culture, value, destType);
}
}
}
----------------------------------------------------------------------------
----
Unable to generate code for a value of type
'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error occurred while
trying to generate the property value for SearchControl.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Unable to generate code for a
value of type 'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error
occurred while trying to generate the property value for SearchControl.
Source Error:
An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of the
exception can be identified using the exception stack trace below.
Stack Trace:
[HttpException (0x80004005): Unable to generate code for a value of type
'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error occurred while
trying to generate the property value for SearchControl.]
System.Web.Compilation.CodeDomUtility.GenerateExpressionForValue(PropertyInf
o propertyInfo, Object value, Type valueType) +2253
System.Web.Compilation.TemplateControlCompiler.BuildBuildMethod(ControlBuild
er builder, Boolean fTemplate, PropertySetterEntry pse) +2538
System.Web.Compilation.TemplateControlCompiler.BuildSourceDataTreeFromBuilde
r(ControlBuilder builder, Boolean fInTemplate, PropertySetterEntry pse) +794
System.Web.Compilation.TemplateControlCompiler.BuildSourceDataTreeFromBuilde
r(ControlBuilder builder, Boolean fInTemplate, PropertySetterEntry pse) +352
System.Web.Compilation.TemplateControlCompiler.BuildSourceDataTreeFromBuilde
r(ControlBuilder builder, Boolean fInTemplate, PropertySetterEntry pse) +352
System.Web.Compilation.TemplateControlCompiler.BuildMiscClassMembers()
+51
System.Web.Compilation.PageCompiler.BuildMiscClassMembers() +10
System.Web.Compilation.BaseCompiler.BuildSourceDataTree() +1276
System.Web.Compilation.BaseCompiler.GetCompiledType() +129
System.Web.UI.PageParser.CompileIntoType() +59
System.Web.UI.TemplateParser.GetParserCacheItemThroughCompilation() +126
[HttpException (0x80004005): Unable to generate code for a value of type
'LCOGTools_WebForms_SrchRcrd.LCOGCntrlSrchRcrd'. This error occurred while
trying to generate the property value for SearchControl.]
System.Web.UI.TemplateParser.GetParserCacheItemInternal(Boolean
fCreateIfNotFound) +692
System.Web.UI.TemplateParser.GetParserCacheItemWithNewConfigPath() +125
System.Web.UI.TemplateParser.GetParserCacheItem() +88
System.Web.UI.TemplateControlParser.CompileAndGetParserCacheItem(String
virtualPath, String inputFile, HttpContext context) +116
System.Web.UI.TemplateControlParser.GetCompiledInstance(String
virtualPath, String inputFile, HttpContext context) +36
System.Web.UI.PageParser.GetCompiledPageInstanceInternal(String
virtualPath, String inputFile, HttpContext context) +43
System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String
requestType, String url, String path) +44
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String
requestType, String path, String pathTranslated, Boolean useAppConfig) +699
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep
..Execute() +95
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously) +173