Самый простой способ создать пользовательский столбец - вернуть пользовательское свойство с сервера WebDAV. В приведенном ниже примере сервер возвращает цену в PriceNs: свойство RetailPrice.
На стороне клиента вы будете определять пользовательский столбец и указать пользовательское имя свойства и пространство имен:
{
Id: 'MyColumn1',
CustomPropertyName: 'RetailPrice',
CustomPropertyNamespace: 'PricesNs',
Text: 'Retail Price',
Width: '150px'
}
Другой подход вернуть HTML из функции Formatter, установленного для столбца. У вас есть полный контроль над тем, что отображается в этом случае.
Вы можете найти более подробную информацию и пример в этой статье: http://www.webdavsystem.com/ajaxfilebrowser/programming/grids_customization/
В случае, если ваш сервер WebDAV запущен на IT Hit WebDAV Server Engine, чтобы вернуть запрашиваемую собственность, вы должны реализовать метод IHierarchyItem.GetProperties (или его асинхронный аналог):
public IEnumerable<PropertyValue> GetProperties(IList<PropertyName> names, bool allprop)
{
if (allprop)
{
return getPropertyValues();
}
List<PropertyValue> propVals = new List<PropertyValue>();
foreach(PropertyName propName in names)
{
if((propName.Namespace == "PricesNs") && (propName.Name == "RetailPrice"))
{
// Depending on the item you will return a different price,
// but here for the sake of simplicity we return one price regerdless of the item
propVals.Add(new PropertyValue(propName, "100"));
}
else
{
...
}
}
return propVals;
}
Пользовательские свойства находятся только в файлах, как я могу проверить, что это не папка, прежде чем я добавлю свойство? –
Верно ли, что GerProperties работает после возврата доходности в методе GetChildren? Мне нужно отфильтровать возвращаемые файлы на основе определенного свойства. Свойства недоступны в методе GetChildren. –