Контрол служит для отображения объектов, являющихся DataObject, согласно заданному представлению, в виде тайлов на веб-странице. По умолчанию происходит приведение значений атрибутов к строке, для изменения этого нужно использовать свойство AttributeRenderers. Реализует интерфейсы IObjectTile, IHavingResources.
Интерфейс
Методы
| Сигнатура | Описание |
|---|---|
protected override void OnLoad(EventArgs e) |
Перегрузка метода класса WebControl, вызывается при загрузке контрола |
protected override void RenderContents(HtmlTextWriter writer) |
Перегрузка метода класса WebControl, используется для рендеринга контрола при размещении его непосредственно на веб-форме |
public string GetMarkup() |
Реализация интерфейса IObjectTile. Метод для получения html-разметки контрола в виде строки, используется при необходимости работы непосредственно с разметкой |
Свойства
| Название | Тип | Описание |
|---|---|---|
View |
ICSSoft.STORMNET.View |
Реализация интерфейса IObjectTile. Используется для задания или получения представления, согласно которому отображаются объекты |
DataObject |
ICSSoft.STORMNET.DataObject |
Реализация интерфейса IObjectTile. Используется для задания или получения объекта данных, который отображается данным тайлом |
AttributeRenderers |
Dictionary<string, AjaxControls.AttributeRenderer> |
Используется для настройки отображения конкретных атрибутов |
Styles |
IEnumerable<string> |
Реализация интерфейса IHavingResources. Используется для получения коллекции связанных с контролом ресурсов (CSS). Но при вызове метода OnLoad ресурсы автоматически добавляются на страницу |
AttributeRenderers
AttributeRenderers - свойство, позволяющее изменять отображение отдельных атрибутов объекта с помощью использования пользовательских функций. Оно представляет собой словарь с ключами типа string (имя атрибута) и значениями типа AttributeRenderer (пользовательская функция, принимающая object и возвращающая string). Возвращаемая строка должна содержать html-разметку, которая будет отображена вместо простого приведения значения атрибута к строке. AttributeRenderer - делегат, объявленный в AjaxControls:
public delegate string AttributeRenderer(object attribute);
Пример инициализации
//tempCat - экземпляр класса Кошка
ObjectTile tile = new ObjectTile();
tile.View = Information.GetView("КошкаL", typeof(Кошка));
tile.DataObject = tempCat;
tile.AttributeRenderers = new Dictionary<string, AttributeRenderer>();
tile.AttributeRenderers.Add("Кличка", delegate (object val)
{
return string.Format("<b>{0}</b>", val);
});
Вид контрола
