[英]How to initialize Custom control attribute (property) of complex type (struct\ class)
我在asp.net中有一个自定义控件,我的自定义控件具有一个类型为Size(具有Width和Height内部成员的值类型)的类成员。 我想从.aspx文件初始化此成员。
理想的解决方案是(此行将不通过编译):
<CustomControl:MyCtrl runat="server" ID="MyCtrlID" MaxSize="{Width=200, Height=400}"/>
.cs文件中的代码:
public partial class MyCtrl: System.Web.UI.UserControl
{
public System.Drawing.Size MaxSize { get; set;}
// Class logic...
}
当然,我可以通过在setter中添加逻辑来解决此问题(使用c#代码),如下所示:
private System.Drawing.Size m_MaxSize;
public string MaxSize
{
set
{
string[] sizes = value.Split(",");
m_MaxSize.Width = sizes[0];
m_MaxSize.Height = sizes[1];
}
}
但是,我们是否有任何asp.net语法可以为我们执行此操作?非常感谢您的帮助。
由于Size Structure使用SizeConverter类来转换和访问Size
属性,因此下面的示例演示如何正确地delcare MaxSize
属性:
<CustomControl:MyCtrl runat="server" ID="MyCtrlID" MaxSize="200, 400"/>
关于类型转换器
类型转换器
提供了将值的类型转换为其他类型以及访问标准值和子属性的统一方法。
ASP.NET在运行时使用类型转换器对存储在控件状态和视图状态中的对象进行序列化和反序列化,有关更多详细信息,请参见类型转换器示例 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.