Example #1
0
        public IDictionary <string, object> ToUnobtrusiveHtmlAttributes()
        {
            var result = new Dictionary <string, object>
            {
                { "data-ajax", "true" },
            };

            PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-method", HttpMethod);
            PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-confirm", Confirm);
            PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-begin", OnBegin);
            PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-complete", OnComplete);
            PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-failure", OnFailure);
            PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-success", OnSuccess);

            if (!string.IsNullOrWhiteSpace(DataFormId))
            {
                result.Add("data-ajax-search-form", PagerBuilder.EscapeIdSelector(DataFormId));
            }
            if (!String.IsNullOrWhiteSpace(LoadingElementId))
            {
                result.Add("data-ajax-loading", PagerBuilder.EscapeIdSelector(LoadingElementId.Trim('#')));

                if (LoadingElementDuration > 0)
                {
                    result.Add("data-ajax-loading-duration", LoadingElementDuration);
                }
            }
            if (!String.IsNullOrWhiteSpace(UpdateTargetId))
            {
                result.Add("data-ajax-update", PagerBuilder.EscapeIdSelector(UpdateTargetId.Trim('#')));
            }
            if (EnablePartialLoading)
            {
                result.Add("data-ajax-partial-loading", "true");
            }
            if (!AllowCache)
            {
                result.Add("data-ajax-cache", "false");
            }
            if (!EnableHistorySupport)
            {
                result.Add("data-ajax-history", "false");
            }

            return(result);
        }
Example #2
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            if (!IsAjax || !output.Attributes.ContainsName("action"))
            {
                return;
            }

            output.MergeAttribute("data-ajax", "true", true);

            AddIfSpecified("data-ajax-url", output.Attributes["action"].ToString());
            AddIfSpecified("data-ajax-method", output.Attributes["method"]?.ToString() ?? "post");
            AddIfSpecified("data-ajax-confirm", Confirm);
            AddIfSpecified("data-ajax-begin", OnBegin);
            AddIfSpecified("data-ajax-complete", OnComplete);
            AddIfSpecified("data-ajax-failure", OnFailure);
            AddIfSpecified("data-ajax-success", OnSuccess);

            if (AllowCache)
            {
                AddIfSpecified("data-ajax-cache", "true");
            }

            if (LoadingElementId.HasValue())
            {
                AddIfSpecified("data-ajax-loading", LoadingElementId.EnsureStartsWith('#'));
                if (LoadingElementDuration > 0)
                {
                    output.MergeAttribute("data-ajax-loading-duration", LoadingElementDuration, true);
                }
            }

            if (UpdateTargetId.HasValue())
            {
                AddIfSpecified("data-ajax-update", UpdateTargetId.EnsureStartsWith('#'));
                AddIfSpecified("data-ajax-mode", InsertionModeUnobtrusive);
            }

            void AddIfSpecified(string name, string value)
            {
                if (value.HasValue())
                {
                    output.MergeAttribute(name, value, true);
                }
            }
        }