2015-01-01 3 views
1

У меня есть пользовательский элемент управления в asp.net У моего настраиваемого элемента управления есть член класса типа Size (тип значения с внутренними членами Width и Height) , Я хотел бы инициализировать этот элемент из файла .aspx.Как инициализировать пользовательский атрибут управления (свойство) сложного типа (struct class)

Идеальным решением будет (эта линия не будет проходить сборник):

<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... 
} 

проклятия я могу решить эту проблему путем добавления логики в инкубаторе (в 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 синтаксис, чтобы сделать это для нас ?, любая помощь очень ценится.

ответ

1

Поскольку Size Structure использует SizeConverter Class для преобразования и получить доступ Size свойства, в следующем примере показано, как правильно delcare MaxSize свойство:

<CustomControl:MyCtrl runat="server" ID="MyCtrlID" MaxSize="200, 400"/> 

О Преобразователи Тип

Тип Преобразователи

обеспечивает унифицированный способ преобразования типа s значений для других типов, , а также для доступа к стандартным значениям и под-свойствам.

ASP.NET использует преобразователи типа во время выполнения сериализации и десериализации объектов, хранящихся в состоянии управления и в состоянии просмотра, выполните Type Converter Example для более подробной информации.

Смежные вопросы