Example #1
0
 private static void OnPageSizeChanged(DataNavigationElement dataNavigation, dynamic arguments)
 {
     if (CanHandle(dataNavigation, arguments))
     {
         dataNavigation.SetPageSize(arguments.Value);
     }
 }
Example #2
0
        public object Build(ObjectBuilderContext context, View parent, dynamic metadata)
        {
            var dataNavigation = new DataNavigationElement(parent);

            dataNavigation.ApplyElementMeatadata((object)metadata);

            // Установка ссылки на источник данных для страниц
            dataNavigation.SetDataSource(metadata.DataSource);

            // Добавление скриптовых подписчиков на события панели
            if (parent != null)
            {
                if (metadata.OnUpdateItems != null)
                {
                    dataNavigation.OnUpdateItems += parent.GetScript(metadata.OnUpdateItems);
                }

                if (metadata.OnSetPageNumber != null)
                {
                    dataNavigation.OnSetPageNumber += parent.GetScript(metadata.OnSetPageNumber);
                }

                if (metadata.OnSetPageSize != null)
                {
                    dataNavigation.OnSetPageSize += parent.GetScript(metadata.OnSetPageSize);
                }
            }

            // Публикация сообщений в шину при возникновении событий
            dataNavigation.NotifyWhenEventAsync(i => i.OnUpdateItems);
            dataNavigation.NotifyWhenEventAsync(i => i.OnSetPageNumber);
            dataNavigation.NotifyWhenEventAsync(i => i.OnSetPageSize);

            // Подписка на сообщения шины от внешних элементов
            dataNavigation.SubscribeOnEvent(OnPageNumberChanged);
            dataNavigation.SubscribeOnEvent(OnPageSizeChanged);

            // Установка номера страницы и ее размеров
            dataNavigation.SetPageNumber((metadata.PageNumber as int?) ?? 0);
            dataNavigation.SetAvailablePageSizes(metadata.AvailablePageSizes);
            dataNavigation.SetPageSize(metadata.PageSize);

            return(dataNavigation);
        }
Example #3
0
 private static bool CanHandle(DataNavigationElement dataNavigation, dynamic arguments)
 {
     return(dataNavigation.GetDataSource() == arguments.DataSource);
 }