Exemplo n.º 1
0
 private void SetSortedCssClass(HtmlGenericControl cell, IGridViewDataSet gridViewDataSet)
 {
     if (RenderOnServer)
     {
         if (gridViewDataSet != null)
         {
             if (gridViewDataSet.SortExpression == GetSortExpression())
             {
                 if (gridViewDataSet.SortDescending)
                 {
                     cell.Attributes["class"] = SortDescendingHeaderCssClass;
                 }
                 else
                 {
                     cell.Attributes["class"] = SortAscendingHeaderCssClass;
                 }
             }
         }
     }
     else
     {
         cell.Attributes["data-bind"] = $"css: {{ '{SortDescendingHeaderCssClass}': ko.unwrap(ko.unwrap($gridViewDataSet).SortExpression) == '{GetSortExpression()}' && ko.unwrap(ko.unwrap($gridViewDataSet).SortDescending), '{SortAscendingHeaderCssClass}': ko.unwrap(ko.unwrap($gridViewDataSet).SortExpression) == '{GetSortExpression()}' && !ko.unwrap(ko.unwrap($gridViewDataSet).SortDescending)}}";
     }
 }
Exemplo n.º 2
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);
            }
        }
Exemplo n.º 3
0
 public virtual void CreateFilterControls(IDotvvmRequestContext context, GridView gridView, HtmlGenericControl cell, IGridViewDataSet gridViewDataSet)
 {
     if (FilterTemplate != null)
     {
         var placeholder = new PlaceHolder();
         cell.Children.Add(placeholder);
         FilterTemplate.BuildContent(context, placeholder);
     }
 }
Exemplo n.º 4
0
 private void SetSortedCssClass(HtmlGenericControl cell, IGridViewDataSet gridViewDataSet)
 {
     if (RenderOnServer)
     {
         if (gridViewDataSet != null)
         {
             if (gridViewDataSet.SortExpression == GetSortExpression())
             {
                 if (gridViewDataSet.SortDescending)
                 {
                     cell.Attributes["class"] = SortDescendingHeaderCssClass;
                 }
                 else
                 {
                     cell.Attributes["class"] = SortAscendingHeaderCssClass;
                 }
             }
         }
     }
     else
     {
         cell.Attributes["data-bind"] = $"css: {{ '{SortDescendingHeaderCssClass}': ko.unwrap(ko.unwrap($gridViewDataSet).SortExpression) == '{GetSortExpression()}' && ko.unwrap(ko.unwrap($gridViewDataSet).SortDescending), '{SortAscendingHeaderCssClass}': ko.unwrap(ko.unwrap($gridViewDataSet).SortExpression) == '{GetSortExpression()}' && !ko.unwrap(ko.unwrap($gridViewDataSet).SortDescending)}}";
     }
 }
Exemplo n.º 5
0
 public virtual void CreateFilterControls(IDotvvmRequestContext context, GridView gridView, HtmlGenericControl cell, IGridViewDataSet gridViewDataSet)
 {
     if (FilterTemplate != null)
     {
         var placeholder = new PlaceHolder();
         cell.Children.Add(placeholder);
         FilterTemplate.BuildContent(context, placeholder);
     }
 }
Exemplo n.º 6
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(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);
            }
        }