Denis Gladkikh
Russian   |  English

Выбранный тег: DataGrid

Используем Silverlight DataPager без WCF RIA

Может я как-то не правильно подошел к DataPager, но, как оказалось, заставить его нормально работать без DomainDataService не так уж и просто. Идея у меня была простая, думал найти свойство, вроде ItemCount (оно есть, но только для чтения), туда поставить то количество элементов, которое у меня есть, сделать байдинги на PageSize и PageIndex и все должно быть готово. Но пришлось делать все совершенно по-другому.

Вообще, мне кажется, что такая проблема, наверняка, была не только у меня, ну не всегда и не везде же используется WCF RIA, а использовать пейджинг в списках это уже правило хорошего тона, если знаешь, что список будет расти. Интересно, кто как борется с этой проблемой. А я пока расскажу про свой велосипед.



Silverlight: небольшой, но неприятный баг с сортировкой в DataGrid

Неделю назад напоролся на баг в Silverlight, точнее в DataGrid контроле, а он пришел, вроде, с Toolkit. Потребовалось больше часа, чтобы понять в чем проблема.

Мы в приложении для части администрирования используем свои контролы, которые могут по схемы таблицы базы данных построить контролы списка объектов и форму для редактирования объектов. Более того, даже строятся join’ы. Сделано это для того, чтобы быстро в административную часть нашего решения быстро добавлять настройки только поменяв метаданные на интерфейсе, не трогая сервисы, и любые другие слои нашего приложения. Пользователям мы эти интерфейсы не показываем, а работаем чаще всего с ними только мы-разработчики и немного наши консультанты и менеджеры, так что внешний вид там не важен.



Первые впечатления о LightSwitch

lightswitch

Как и многие скачал я себе LightSwitch, недавно он стал доступен для MSDN подписчиков. Скачивал и устанавливал я его не просто так, чтобы посмотреть, а у меня в голове были уже идеи, как это можно было бы использовать в текущем проекте. Наш основной проект сейчас – это модульное Silverlight приложение, один из модулей – это административная часть с кучей редактируемых таблиц (буду называть их справочниками). Мне не хотелось делать отдельные представления на каждый справочник, потому я сделал механизм, который позволял просто заполнять DataGrid по имени таблицы и списку полей. Причем поля можно указываться и из таблиц, на которые есть ссылки (reference) из главной таблицы, на сервере построится правильный join. Так же реализовал свой DataForm, к сожалению стандартный расширить не получилось, из-за того что там были спрятаны некоторые необходимые методы и свойства, и помню, что в WPF эти свойства спрятаны не были, ну да ладно. В итоге, на сервер передаются объекты и построенные запросы: что нужно отобразить, что показать. То есть, чтобы добавить редактирование новой таблицы CronTask мне теперь необходимо сделать буквально следующее...



Экспорт в Excel из Silverlight/WPF DataGrid

Экспорт табличной части в Excel из приложения достаточно распространенная задача, и решать ее можно по разному. Конечно решение зависит от того, что за приложение вы разрабатываете. Если это приложение разрабатываемое для автоматизации бизнес процессов, и оно предназначено для установки в несколько контор, то скорее всего вы можете диктовать условия (рекомендации по использованию), необходимые для вашего приложения. Либо заказчик выставит требования, под которые вы будете его разрабатывать. В этом случае, экспорт проще всего реализовывать через COM, используя инфраструктуру Excel (либо OpenOffice), тогда и реализовать данную задачу при помощи данного подхода будет просто, и это даст вам наибольшую гибкость и возможность использовать всю мощь таблиц Excel. Об этом вариант и пойдет разговор ниже. Другой вариант – ваше приложение предназначено для домашних пользователей, в этом случае диктовать обязательную установку MS Office или OpenOffice не очень хорошо, потому лучше не завязываться на них, а использовать либо сторонние компоненты для создания документов, либо экспортировать в xml/html формат, который понимает MS Office (так делает, например, JIRA). Правда в этом случае будет тяжело удовлетворить просьбы клиентов, вроде: сделать так, чтобы экспортируемый документ был подготовлен для печати в альбомном виде с необходимыми полями, хотя может быть и возможно.