コード例 #1
0
        private string BuildUrl(string sortPropertyName, string linkText)
        {
            var orderDirectionQuery = string.Empty;
            var routeValues         = new RouteValueDictionary();

            foreach (var key in viewContext_.RequestContext.HttpContext.Request.QueryString.AllKeys.Where(key => key != null))
            {
                routeValues[key] = viewContext_.RequestContext.HttpContext.Request.QueryString[key];
            }
            var arrowSpan = Tag.Span.Class("t-order-icon");

            if (Orders.Any(x => x.PropertyName == sortPropertyName))
            {
                if (Orders.First(x => x.PropertyName == sortPropertyName).Direction == GridParameters.Ascending)
                {
                    orderDirectionQuery += sortPropertyName + GridParameters.PropertyDirectionSeparator + GridParameters.Descending;
                    AddOrUpdate(routeValues, GridParameters.OrderKey, orderDirectionQuery);
                    arrowSpan.Class(GridClass.TopIcon);
                }
                else
                {
                    routeValues.Remove(GridParameters.OrderKey);
                    arrowSpan.Class(GridClass.BottomIcon);
                }
            }
            else
            {
                orderDirectionQuery += sortPropertyName + GridParameters.PropertyDirectionSeparator + GridParameters.Ascending;
                AddOrUpdate(routeValues, GridParameters.OrderKey, orderDirectionQuery);
            }
            var url  = UrlHelper.GenerateUrl(null, null, null, routeValues, RouteTable.Routes, GridModel.Context.RequestContext, true);
            var link = Tag.A(url).Id(sortPropertyName).Class(GridClass.GridShift).Html(linkText).Html(arrowSpan.Style("display:inline-block")).ToString();

            return(link);
        }
コード例 #2
0
    public dynamic CtaList(dynamic ctas)
    {
        var ctaList = Tag.Div();

        foreach (var cta in AsList(ctas))
        {
            ctaList.Add(Tag.A(cta.Label).Class("btn btn-primary btn-lg cta").Href(cta.Link).Attr("data-id", cta.EntityId).Attr("data-moduleid", CmsContext.Module.Id).Attr("data-trackingevent", "cta"));
        }
        return(ctaList);
    }
コード例 #3
0
ファイル: Helpers.cs プロジェクト: 2sic/app-tutorial-razor
    public dynamic TitleLogo(string path, string link, int size = 0)
    {
        var img = Tag.Div(Tag.Img().Src(App.Path + "/" + path + "?w=75&h=75").Class("img-fluid")).Class("icon-wrapper");

        if (size != 0)
        {
            img.Style("height: " + size + "px;" + " width: " + size + "px;");
        }
        return(Tag.A().Href(link).Target("_blank").Wrap(img.Class("float-right ml-3 float-end")));
    }
コード例 #4
0
ファイル: InfoBox.cs プロジェクト: 2sic/app-tutorial-razor
    public dynamic InfoContent(string title, string link = "", string textColor = "")
    {
        var content = Tag.Li(title);

        if (Text.Has(link))
        {
            return(Tag.A(content).Href(link).Target("_blank").Class(textColor));
        }
        return(content.Class(textColor));
    }
コード例 #5
0
ファイル: Fancybox.cs プロジェクト: 2sic/app-tutorial-razor
    // Create an image which opens a larger version in a lighbox
    public dynamic PreviewWithLightbox(string url, int width = 100, int height = 100, string classes = "", string label = null)
    {
        // Make sure the fancybox is added to the page, but only once
        GetService <IPageService>().Activate("fancybox4");

        return(Tag.Figure(
                   Tag.A().Attr("data-fancybox='gallery'").Href(url).Class(classes).Attr("data-caption", label).Wrap(
                       Tag.Img().Src(Link.Image(url, width: width, height: height))
                       )
                   ));
    }
コード例 #6
0
ファイル: Helpers.cs プロジェクト: 2sic/app-tutorial-razor
    private dynamic Breadcrumb(string name, string topicUrl)
    {
        var result = Tag.Custom(null).Wrap(
            Tag.A("Tutorial Home").Href(Link.To())
            );

        if (!string.IsNullOrEmpty(name))
        {
            result.Add(" › ", Tag.A(name).Href(Link.To(parameters: topicUrl.Replace("/", "="))));
        }
        return(result);
    }
コード例 #7
0
ファイル: Helpers.cs プロジェクト: 2sic/app-tutorial-razor
 public dynamic TutorialLinkHome(string label, string target, string description, string newText = null)
 {
     return(Tag.Li(
                Tag.Strong(
                    Tag.A().Href(Link.To(parameters: target + "=home")).Wrap(
                        label + " ",
                        Highlighted(newText)
                        )
                    ),
                Tag.Br(),
                description
                ));
 }
コード例 #8
0
        public virtual string Render(T dataItem, IList <IGridDataKey <T> > dataKeys, ControllerContext context)
        {
            if (CheckIfHidden(dataItem))
            {
                return(string.Empty);
            }
            var url = dataItem == null
                ? context.BuildUrl(RouteValueDictionary, dataKeys)
                : context.BuildUrl(dataItem, RouteValueDictionary, dataKeys);

            if (!TextOnly)
            {
                var image = Tag.A(url).Style("display:inline-block")
                            .Html(Tag.Span.Class("grid-icon", ImageUrl).Title(AlternateText))
                            .MergeAttributes(HtmlAttributes.DictionaryParse());
                return(image.ToString());
            }
            return(Tag.A(url).Style("display:inline-block").Class(ImageUrl)
                   .Text(AlternateText).MergeAttributes(HtmlAttributes.DictionaryParse())
                   .ToString());
        }
コード例 #9
0
        protected virtual FluentTagBuilder RenderLeftSideOfPager()
        {
            var ul = Tag.Ul;

            //If we're on page 1 then there's no need to render a link to the first page.
            ul.Html(Tag.Li.Html(GetPrevNext(1, paginationFirst_, pagination_.PageNumber > 1, GridMessages.FirstPage)));

            //If we're on page 2 or later, then render a link to the previous page.
            //If we're on the first page, then there is no need to render a link to the previous page.
            ul.Html(Tag.Li.Html(GetPrevNext(pagination_.PageNumber - 1, paginationPrev_, pagination_.HasPreviousPage, GridMessages.PreviousPage)));


            if (PaginationStart > 1)
            {
                ul.Html(Tag.Li.Html(Tag.A(urlBuilder_(PreviousPagination)).SetInnerText("..").Title(GridMessages.PreviousPagerElements)));
            }

            for (var i = PaginationStart; i <= MaxPagination; i++)
            {
                ul.Html(Tag.Li.Html(GetNumeratedLink(i)));
            }

            if (MaxPagination < pagination_.TotalPages)
            {
                ul.Html(Tag.Li.Html(Tag.A(urlBuilder_(NextPagination)).SetInnerText("..").Title(GridMessages.NextPagerElements)));
            }



            //Only render a link to the next page if there is another page after the current page.
            ul.Html(Tag.Li.Html(GetPrevNext(pagination_.PageNumber + 1, paginationNext_, pagination_.HasNextPage, GridMessages.NextPage)));


            var lastPage = pagination_.TotalPages;

            //Only render a link to the last page if we're not on the last page already.
            ul.Html(Tag.Li.Html(GetPrevNext(lastPage, paginationLast_, pagination_.PageNumber < lastPage, GridMessages.LastPage)));

            return(ul);
        }
コード例 #10
0
ファイル: ATests.cs プロジェクト: thabaum/razor-blade
 // ReSharper disable once InconsistentNaming
 public void TableBasic()
 {
     Is("<a href='...'>hello there</a>",
        Tag.A("hello there").Href("..."));
 }
コード例 #11
0
 // Shows a back to list button
 public dynamic BackToListButton()
 {
     return(Tag.A(App.Resources.LabelBackToList).Class("btn").Class("btn-outline-primary").Class("app-backtolist").Href(Link.To().ToString()));
 }
コード例 #12
0
ファイル: Helpers.cs プロジェクト: 2sic/app-tutorial-razor
 public dynamic TutLink(string label, string target)
 {
     return(Tag.A(label).Href(Link.To(parameters: GetTargetUrl(target))));
 }
コード例 #13
0
ファイル: Helpers.cs プロジェクト: 2sic/app-tutorial-razor
 public dynamic ExternalLink(string target, string description)
 {
     return(Tag.A(description).Href(target).Target("_blank"));
 }
コード例 #14
0
 private FluentTagBuilder GetNumeratedLink(int pageNumber)
 {
     return(pageNumber == pagination_.PageNumber
         ? Tag.Span.Class(GridClass.ActivePage).SetInnerText(pageNumber.ToString())
         : Tag.A(urlBuilder_(pageNumber)).Html(pageNumber.ToString()));
 }
コード例 #15
0
 private FluentTagBuilder GetPrevNext(int pageNumber, FluentTagBuilder span, bool activateLink, string title)
 {
     return(activateLink
                ? Tag.A(urlBuilder_(pageNumber)).Title(title).Html(span)
                : span.AddCssClass(GridClass.GridDisabled));
 }