示例#1
0
        protected void AddDisplayable()
        {
            if (Site != null && Site.DesignMode)
            {
                return;
            }

            if (Displayable != null)
            {
                displayer = Displayable.AddTo(CurrentItem, PropertyName, this);

                if (displayer != null)
                {
                    if (HeaderTemplate != null)
                    {
                        Control header = new SimpleTemplateContainer();
                        Controls.AddAt(0, header);

                        HeaderTemplate.InstantiateIn(header);
                    }

                    if (FooterTemplate != null)
                    {
                        Control footer = new SimpleTemplateContainer();
                        Controls.Add(footer);

                        FooterTemplate.InstantiateIn(footer);
                    }
                }
            }
        }
示例#2
0
        protected override DataGridColumn GetColumn(int columnIndex, object column)
        {
            if (column is DataGridColumn dataGridColumn)
            {
                return(dataGridColumn);
            }

            if (column is string bindingPath)
            {
                return new DataGridTextColumn {
                           Header = bindingPath, Binding = new Binding(bindingPath)
                }
            }
            ;

            DataGridTemplateColumn dataGridTemplateColumn = new DataGridTemplateColumn();

            if (HeaderTemplate != null)
            {
                FrameworkElement header = (FrameworkElement)HeaderTemplate.LoadContent();

                header.DataContext            = column;
                dataGridTemplateColumn.Header = header;
            }

            if (CellTemplate != null)
            {
                dataGridTemplateColumn.CellTemplate = RewriteCellTemplate(columnIndex);
            }

            return(dataGridTemplateColumn);
        }
示例#3
0
        public virtual void CreateHeaderControls(IDotvvmRequestContext context, GridView gridView, Action <string> sortCommand, HtmlGenericControl cell, IGridViewDataSet gridViewDataSet)
        {
            if (HeaderTemplate != null)
            {
                HeaderTemplate.BuildContent(context, cell);
                return;
            }

            if (AllowSorting)
            {
                if (sortCommand == null)
                {
                    throw new DotvvmControlException(this, "Cannot use column sorting where no sort command is specified. Either put IGridViewDataSet in the DataSource property of the GridView, or set the SortChanged command on the GridView to implement custom sorting logic!");
                }

                var sortExpression = GetSortExpression();

                var linkButton = new LinkButton();
                linkButton.SetValue(LinkButton.TextProperty, GetValueRaw(HeaderTextProperty));
                cell.Children.Add(linkButton);

                var bindingId = linkButton.GetValue(Internal.UniqueIDProperty) + "_sortBinding";
                var binding   = new CommandBindingExpression(context.Services.GetRequiredService <BindingCompilationService>().WithoutInitialization(), h => sortCommand(sortExpression), bindingId);
                linkButton.SetBinding(ButtonBase.ClickProperty, binding);

                SetSortedCssClass(cell, gridViewDataSet);
            }
            else
            {
                var literal = new Literal();
                literal.SetValue(Literal.TextProperty, GetValueRaw(HeaderTextProperty));
                cell.Children.Add(literal);
            }
        }
示例#4
0
        protected override void CreateChildControls()
        {
            Controls.Clear();

            rptList   = new Repeater();
            plhHeader = new WebPlaceHolder();
            plhFooter = new WebPlaceHolder();

            if (ItemTemplate != null)
            {
                rptList.ItemTemplate = ItemTemplate;
            }
            if (AlternatingItemTemplate != null)
            {
                rptList.ItemTemplate = AlternatingItemTemplate;
            }
            if (SeparatorTemplate != null)
            {
                rptList.SeparatorTemplate = SeparatorTemplate;
            }

            PopulateListControls();

            if (HeaderTemplate != null)
            {
                HeaderTemplate.InstantiateIn(plhHeader);
            }
            if (FooterTemplate != null)
            {
                FooterTemplate.InstantiateIn(plhFooter);
            }

            rptList.ItemCreated   += ListItemCreated;
            rptList.ItemDataBound += ListItemDataBound;
        }
        public HeaderTemplate GetHeaderTemplateDefault()
        {
            HeaderTemplate result = new HeaderTemplate();

            using (IDbConnection conn = Connection)
            {
                string sql = @"select * from HeaderTemplates
                                where IsDefaultTemplate = 1";

                try
                {
                    conn.Open();

                    result = conn.Query <HeaderTemplate>(sql).AsQueryable().FirstOrDefault();
                }
                catch (SqlException sqlEx)
                {
                    Logger.ErrorException(sqlEx);
                }
                catch (Exception ex)
                {
                    Logger.ErrorException(ex);
                }
                finally
                {
                    if (conn != null && conn.State != ConnectionState.Closed)
                    {
                        conn.Close();
                    }
                }
            }

            return(result);
        }
示例#6
0
        public virtual UIElement GenerateHeader()
        {
            var header = HeaderTemplate == null ? null : HeaderTemplate.LoadContent() as UIElement;

            if (header == null)
            {
                var text = new TextBlock();
                text.SetBinding(TextBlock.TextProperty, new Binding {
                    Path = new PropertyPath("Title"), Mode = BindingMode.OneWay
                });
                header = text;
            }
            SetColumn(header, this);

            var element = header as FrameworkElement;

            if (element != null)
            {
                element.SetBinding(FrameworkElement.DataContextProperty, new Binding {
                    Path = new PropertyPath(ColumnProperty.DependencyProperty), Source = element, Mode = BindingMode.OneWay
                });
            }

            return(header);
        }
示例#7
0
        protected override IGridCellBuilder CreateHeaderBuilderCore()
        {
            IGridCellBuilder builder = null;

            HeaderHtmlAttributes.Add("data-field", Member);
            HeaderHtmlAttributes.Add("data-title", Title);
            if (!Groupable)
            {
                HeaderHtmlAttributes.Add("data-groupable", "false");
            }

            AppendAggregateAttributes();

            if (Sortable && Grid.Sortable.Enabled && !HeaderTemplate.HasValue())
            {
                builder = new GridSortableHeaderCellBuilder(HeaderHtmlAttributes, GetSortUrl(), SortDirection, AppendHeaderContent);
            }
            else
            {
                builder = base.CreateHeaderBuilderCore();
            }

            if (Filterable && Grid.Filterable.Enabled && !Grid.ColumnMenu.Enabled)
            {
                var filtered = Grid.DataSource.Filters
                               .SelectMemberDescriptors()
                               .Any(filter => filter.Member.IsCaseInsensitiveEqual(Member));

                builder.Decorators.Add(new GridFilterCellDecorator(filtered));
            }

            return(builder);
        }
        public bool UpdateHeaderTemplate(HeaderTemplate headerTemplate)
        {
            using (var db = new KentEntities())
            {
                try
                {
                    var template = db.HeaderTemplates.Where(d => d.ID == headerTemplate.ID).FirstOrDefault();
                    if (template == null)
                    {
                        return(false);
                    }

                    template.Content           = headerTemplate.Content;
                    template.ContentEnglish    = headerTemplate.ContentEnglish;
                    template.IsDefaultTemplate = headerTemplate.IsDefaultTemplate;
                    template.LastUpdate        = DateTime.Now;

                    return(db.SaveChanges() > 0 ? true : false);
                }
                catch (SqlException sqlEx)
                {
                    Logger.ErrorException(sqlEx);
                }
                catch (Exception ex)
                {
                    Logger.ErrorException(ex);
                }
            }

            return(false);
        }
示例#9
0
        public bool SaveHeaderTemplate(HeaderTemplateManageModel model)
        {
            if (model.ID > 0)
            {
                var dataUpdate = new HeaderTemplate()
                {
                    ID                = model.ID.Value,
                    Content           = model.Content,
                    IsDefaultTemplate = model.IsDefaultTemplate,
                    ContentEnglish    = model.ContentEnglish
                };

                return(_headerRepository.UpdateHeaderTemplate(dataUpdate));
            }
            else
            {
                HeaderTemplate data = new HeaderTemplate()
                {
                    Name              = model.Name,
                    Content           = model.Content,
                    ContentEnglish    = model.ContentEnglish,
                    IsDefaultTemplate = model.IsDefaultTemplate,
                    Created           = DateTime.Now,
                    CreatedBy         = "Admin",
                    LastUpdate        = DateTime.Now,
                    LastUpdateBy      = "Admin",
                    RecordActive      = true,
                    RecordDeleted     = false,
                    RecordOrder       = 1
                };
                return(_headerRepository.AddHeaderTemplate(data));
            }
        }
示例#10
0
        // Generates tabs from the passed-in items
        private void addTabs(IEnumerable items)
        {
            if (items != null && HeaderTemplate != null && ContentTemplate != null)
            {
                foreach (object item in items)
                {
                    // Create elements from header and content templates.  Necessary because applying the templates directly to
                    // the tab item's HeaderTemplate and ContentTemplate properties fails to establish the proper data context
                    FrameworkElement header  = HeaderTemplate.LoadContent() as FrameworkElement;
                    FrameworkElement content = ContentTemplate.LoadContent() as FrameworkElement;

                    if (header != null && content != null)
                    {
                        // Set the data context of tab header and content
                        header.DataContext  = item;
                        content.DataContext = item;

                        // Create the tab item and add to the collection of tabs
                        TabItem tab = new TabItem()
                        {
                            Header      = header,
                            Content     = content,
                            DataContext = item
                        };

                        if (HeaderStyle != null)
                        {
                            tab.Style = HeaderStyle;
                        }

                        tabs.Add(tab);
                    }
                }
            }
        }
示例#11
0
        public HeaderTemplateManageModel GetHeaderTemplateById(int id)
        {
            HeaderTemplate data = _headerRepository.GetHeaderTemplateById(id);

            if (data != null)
            {
                return(MappingManageModel(data));
            }
            return(new HeaderTemplateManageModel());
        }
示例#12
0
        public HeaderTemplateModel GetHeaderTemplateDefault()
        {
            HeaderTemplate data = _headerRepository.GetHeaderTemplateDefault();

            if (data != null)
            {
                return(Mapping(data));
            }
            return(new HeaderTemplateModel());
        }
示例#13
0
 protected void AppendHeaderContent(IHtmlNode container)
 {
     if (HeaderTemplate != null && HeaderTemplate.HasValue())
     {
         HeaderTemplate.Apply(container);
     }
     else
     {
         container.Html(Title.HasValue() ? Title : "&nbsp;");
     }
 }
示例#14
0
 private HeaderTemplateManageModel MappingManageModel(HeaderTemplate data)
 {
     return(new HeaderTemplateManageModel()
     {
         ID = data.ID,
         Name = data.Name,
         Content = data.Content,
         ContentEnglish = data.ContentEnglish,
         IsDefaultTemplate = data.IsDefaultTemplate
     });
 }
        protected override void CreateChildControls()
        {
            base.CreateChildControls();

            // header
            if (HeaderTemplate != null)
            {
                _headerTemplate = new HtmlGenericControl("header");
                _headerTemplate.Attributes.Add("class", "modal-header");
                HtmlGenericControl h2 = new HtmlGenericControl("h2");
                h2.Attributes.Add("class", "modal-title");
                _headerTemplate.Controls.Add(h2);
                this.Controls.Add(_headerTemplate);
                HeaderTemplate.InstantiateIn(h2);
            }

            // body with empty content by default
            _bodyTemplate = new HtmlGenericControl("div");
            _bodyTemplate.Attributes.Add("class", "modal-body");
            this.Controls.Add(_bodyTemplate);
            if (BodyTemplate != null)
            {
                BodyTemplate.InstantiateIn(_bodyTemplate);
            }

            // footer
            if (FooterTemplate != null)
            {
                _footerTemplate = new HtmlGenericControl("div");
                _footerTemplate.Attributes.Add("class", "modal-footer");
                this.Controls.Add(_footerTemplate);
                FooterTemplate.InstantiateIn(_footerTemplate);
            }

            try
            {
                Control target = Page.FindControlRecursive(this.AssociateControlID);

                if (target is WebControl wc)
                {
                    wc.Attributes["href"] = "#" + this.ClientID;
                    wc.AddCssClass(IsClosable ? "wb-lbx" : "wb-lbx lbx-modal");
                }
            }
            catch (Exception)
            {
                throw new Exception("AssociateControlID property for WetModal with ID " + this.ID + " should refer to an html control with the href attribute.");
            }
        }
示例#16
0
 private HeaderTemplateModel Mapping(HeaderTemplate data)
 {
     return(new HeaderTemplateModel()
     {
         ID = data.ID,
         Name = data.Name,
         Content = data.Content,
         ContentEnglish = data.ContentEnglish,
         IsDefaultTemplate = data.IsDefaultTemplate,
         Created = data.Created,
         CreatedBy = data.CreatedBy,
         LastUpdate = data.LastUpdate,
         LastUpdateBy = data.LastUpdateBy
     });
 }
示例#17
0
        public override void OnApplyTemplate()
        {
            GoToState(Drawing);
            base.OnApplyTemplate();
            ReSize();

            var content = (ContentControl)GetTemplateChild("Content");

            content.Content = ContentTemplate.LoadContent();
            var headerContent = (ContentControl)GetTemplateChild("HeaderContent");

            headerContent.Content            = HeaderTemplate.LoadContent();
            headerContent.MouseLeftButtonUp += HeaderContentMouseLeftButtonUp;
            headerContent.MouseEnter        += UniformItemMouseEnter;
            headerContent.MouseLeave        += UniformItemMouseLeave;
        }
示例#18
0
        private async void setItemsSource(IList items)
        {
            if (!initialized)
            {
                if (HeaderTemplate != null)
                {
                    ContentPanel.Children.Add((FrameworkElement)HeaderTemplate.LoadContent());
                }
                if (FooterTemplate != null)
                {
                    ContentPanel.Children.Add((FrameworkElement)FooterTemplate.LoadContent());
                }
                initialized = true;
            }

            if (items == null)
            {
                items = new object[0];
            }
            int headerCount     = HeaderTemplate != null ? 1 : 0;
            int footerCount     = FooterTemplate != null ? 1 : 0;
            int itemsCount      = ContentPanel.Children.Count - headerCount - footerCount;
            int changeableCount = Math.Min(itemsCount, items.Count);
            int addableCount    = items.Count - changeableCount;
            int removableCount  = itemsCount - changeableCount;
            var itemTemplate    = this.ItemTemplate;

            for (int i = 0; i < changeableCount; i++)
            {
                ((FrameworkElement)(((Border)ContentPanel.Children[headerCount + i]).Child)).DataContext = items[i];
            }
            for (int i = 0; i < addableCount; i++)
            {
                object           newItem    = items[changeableCount + i];
                FrameworkElement newElement = (FrameworkElement)itemTemplate.LoadContent();
                newElement.DataContext = newItem;
                var newElementContainer = new Border {
                    Child = newElement, Background = new SolidColorBrush(Colors.Transparent)
                };
                newElementContainer.Tapped += elementContainer_Tapped;
                ContentPanel.Children.Insert(ContentPanel.Children.Count - footerCount, newElementContainer);
            }
            for (int i = removableCount - 1; i >= 0; i--)
            {
                ContentPanel.Children.RemoveAt(headerCount + changeableCount + i);
            }
        }
示例#19
0
        protected override void CreateChildControls()
        {
            CollapseItemHeaderContainer headerTemplateContainer = new CollapseItemHeaderContainer();

            HeaderTemplate.InstantiateIn(headerTemplateContainer);

            CollapseItemBodyContainer bodyTemplateContainer = new CollapseItemBodyContainer();

            BodyTemplate.InstantiateIn(bodyTemplateContainer);

            Controls.Add(headerTemplateContainer);
            Controls.Add(bodyTemplateContainer);

            CollapseItemBodyContainer body = (Controls.OfType <CollapseItemBodyContainer>().FirstOrDefault() as CollapseItemBodyContainer);

            body.Opened = this.Opened;
        }
        public override void RenderHeader(TableCell container)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            if (HeaderTemplate == null)
            {
                base.RenderHeader(container);
            }
            else
            {
                HeaderTemplate.InstantiateIn(container);
                container.ApplyStyle(HeaderStyle);
            }
        }
        public static void PrintGrid(ref DataGrid fwe, string header)
        {
            var columnWidths = GetColumnWidths(fwe);

            var ht             = new HeaderTemplate();
            var headerTemplate = XamlWriter.Save(ht);

            headerTemplate = headerTemplate.Replace("TitleHeader", header);
            var dt = Grid2Dt(fwe);


            var printControl = PrintControlFactory.Create(dt, columnWidths, headerTemplate);

            printControl.ShowPrintPreview();
            // var visual = printControl.DrawingVisual;

            // SetUpPrint(fwe,visual);
        }
示例#22
0
        public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
        {
            var isHeader = HeaderIndexes.Contains(indexPath.Row);

            WFCell cell;

            if (isHeader)
            {
                cell = (WFCell)collectionView.DequeueReusableCell(WHeaderCell.CELL_ID, indexPath);
            }
            else
            {
                cell = (WFCell)collectionView.DequeueReusableCell(WFCell.CELL_ID, indexPath);
            }

            if (cell.RendererView == null)
            {
                View formsView;
                if (isHeader)
                {
                    formsView = (View)HeaderTemplate.CreateContent();
                }
                else
                {
                    formsView = (View)ItemTemplate.CreateContent();
                }

                var nativeView = formsView.ToUIView(new CGRect(0, 0, cell.Frame.Width, cell.Frame.Height));
                cell.RendererView = nativeView;
            }

            var subview = cell.ContentView.Subviews[0];
            var frame   = subview.Frame;

            //force height to the cell height in case the reusable cell subview have the old height
            subview.Frame = new CGRect(frame.X, frame.Y, cell.Frame.Width, cell.Frame.Height);

            var element = (cell.RendererView as VisualElementRenderer <VisualElement>).Element;

            element.BindingContext = ItemsSource[indexPath.Row];
            element.Layout(new Xamarin.Forms.Rectangle(0, 0, cell.Frame.Width, cell.Frame.Height));

            return(cell);
        }
        private View CreateView(HeaderedItem next)
        {
            var  h = next.Header;
            View view;

            if (h != null)
            {
                view = HeaderTemplate?.CreateContent() as View ?? new Label {
                };
                view.BindingContext = h;
                return(view);
            }

            view = ItemTemplate?.CreateContent() as View ?? new Label {
            };
            view.BindingContext = next.Item;
            SetItemModel(view, next);
            return(view);
        }
示例#24
0
文件: TabItem.cs 项目: ya1gaurav/moon
        private void UpdateHeaderVisuals()
        {
            ContentControl header = GetContentControl(IsSelected, TabStripPlacement);

            if (header == null)
            {
                return;
            }

            if (HeaderTemplate == null)
            {
                header.Content = Header;
            }
            else
            {
                FrameworkElement headerContent = HeaderTemplate.LoadContent() as FrameworkElement;
                header.Content = headerContent;
            }
        }
示例#25
0
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Thead);
            var item = new TableItem(-1, null);

            HeaderTemplate.InstantiateIn(item);
            item.DataBind();
            item.RenderControl(writer);
            writer.RenderEndTag();

            for (var i = 0; i < _dataArray.Length; i++)
            {
                item = new TableItem(i, _dataArray[i]);
                RowTemplate.InstantiateIn(item);
                item.DataBind();
                item.RenderControl(writer);
            }

            writer.RenderEndTag();
        }
示例#26
0
        public void Render()
        {
            if (ItemTemplate == null || ItemsSource == null)
            {
                return;
            }

            var layout = new StackLayout();

            layout.Orientation = Orientation == ScrollOrientation.Vertical ? StackOrientation.Vertical : StackOrientation.Horizontal;

            if (HeaderTemplate != null)
            {
                var headerView = HeaderTemplate.CreateContent() as View;
                layout.Children.Add(headerView);
            }

            foreach (var item in ItemsSource)
            {
                var command = SelectedCommand ?? new Command((obj) =>
                {
                    var args = new ItemTappedEventArgs(ItemsSource, item);
                    ItemSelected?.Invoke(this, args);
                });
                var commandParameter = SelectedCommandParameter ?? item;

                var viewCell = ItemTemplate.CreateContent() as ViewCell;
                viewCell.View.BindingContext = item;
                viewCell.View.GestureRecognizers.Add(new TapGestureRecognizer
                {
                    Command              = command,
                    CommandParameter     = commandParameter,
                    NumberOfTapsRequired = 1
                });

                layout.Children.Add(viewCell.View);
            }

            Content = layout;
        }
示例#27
0
        private void CreateControlHierarchy()
        {
            if (HeaderTemplate != null)
            {
                BasicTemplateContainer header = new BasicTemplateContainer();
                HeaderTemplate.InstantiateIn(header);
                Controls.Add(header);
                Controls.Add(new LiteralControl("<br>"));
            }

            int count = menuData.Count;

            for (int index = 0; index < count; index++)
            {
                MenuItemData itemdata = (MenuItemData)menuData[index];
                CreateMenuItem(itemdata.Title, itemdata.Url, itemdata.ImageUrl, itemdata.Target);

                if (index != count - 1)
                {
                    if (SeparatorTemplate != null)
                    {
                        BasicTemplateContainer separator = new BasicTemplateContainer();
                        SeparatorTemplate.InstantiateIn(separator);
                        Controls.Add(separator);
                    }
                    else
                    {
                        Controls.Add(new LiteralControl(" | "));
                    }
                }
            }

            if (FooterTemplate != null)
            {
                Controls.Add(new LiteralControl("<br>"));
                BasicTemplateContainer footer = new BasicTemplateContainer();
                FooterTemplate.InstantiateIn(footer);
                Controls.Add(footer);
            }
        }
示例#28
0
        protected override void Render(HtmlTextWriter writer)
        {
            // Если шаблон был установлен в хост странице.
            if (_headerTemplate != null)
            {
                // Инициализируем контейнер для данного шаблона. При вызове конструктора передаем указатель на текущий объект,
                // так как в HeaderTemplateContainer могут потребоваться данные из этого объекта.
                HeaderTemplateContainer template = new HeaderTemplateContainer(this);

                // Инициалищируем шаблон в указанном контейнере.
                HeaderTemplate.InstantiateIn(template);

                // Добавляем контейнер в дерево элементов управления.
                Controls.Add(template);
            }
            else
            {
                Label control = new Label();
                control.Text = Title + " [ " + Author + " ] ";
                Controls.Add(control);
            }
            if (_messageTemplate != null)
            {
                MessageTemplateContainer templateContainer = new MessageTemplateContainer(this);
                MessageTemplate.InstantiateIn(templateContainer);
                Controls.Add(templateContainer);
            }
            else
            {
                Label control = new Label();
                control.Text = "<br />" + MessageBody;
                Controls.Add(control);
            }

            // Для того что бы сработали все выражения привязок <%# ... %>, используемых в шаблоне, вызываем метод DataBind.
            DataBind();

            base.Render(writer);
        }
        public bool AddHeaderTemplate(HeaderTemplate headerTemplate)
        {
            using (var db = new KentEntities())
            {
                try
                {
                    db.HeaderTemplates.Add(headerTemplate);
                    return(db.SaveChanges() > 0 ? true : false);
                }
                catch (SqlException sqlEx)
                {
                    Logger.ErrorException(sqlEx);
                }
                catch (Exception ex)
                {
                    Logger.ErrorException(ex);
                }
            }


            return(false);
        }
示例#30
0
        public virtual void CreateHeaderControls(IDotvvmRequestContext context, GridView gridView, Action <string> sortCommand, HtmlGenericControl cell)
        {
            if (AllowSorting)
            {
                if (sortCommand == null)
                {
                    throw new DotvvmControlException(this, "Cannot use column sorting where no sort command is specified. Either put IGridViewDataSet in the DataSource property of the GridView, or set the SortChanged command on the GridView to implement custom sorting logic!");
                }

                var sortExpression = GetSortExpression();

                var linkButton = new LinkButton();
                if (HeaderTemplate != null)
                {
                    HeaderTemplate.BuildContent(context, linkButton);
                }
                else
                {
                    linkButton.Text = HeaderText;
                }
                cell.Children.Add(linkButton);
                var bindingId = linkButton.GetValue(Internal.UniqueIDProperty) + "_sortBinding";
                var binding   = new CommandBindingExpression(h => sortCommand(sortExpression), bindingId);
                linkButton.SetBinding(ButtonBase.ClickProperty, binding);
            }
            else
            {
                if (HeaderTemplate == null)
                {
                    var literal = new Literal(HeaderText);
                    cell.Children.Add(literal);
                }
                else
                {
                    HeaderTemplate.BuildContent(context, cell);
                }
            }
        }