Esempio n. 1
0
        private static string ParseDynamic(PageInfo pageInfo, ContextInfo contextInfo, string testType, string testValue, string testOperate, string loading, string yes, string no, string onBeforeSend, string onSuccess, string onComplete, string onError)
        {
            if (string.IsNullOrEmpty(yes) && string.IsNullOrEmpty(no))
            {
                return(string.Empty);
            }

            pageInfo.AddPageBodyCodeIfNotExists(PageInfo.Const.StlClient);
            var ajaxDivId = StlParserUtility.GetAjaxDivId(pageInfo.UniqueId);

            //运行解析以便为页面生成所需JS引用
            if (!string.IsNullOrEmpty(yes))
            {
                StlParserManager.ParseInnerContent(new StringBuilder(yes), pageInfo, contextInfo);
            }
            if (!string.IsNullOrEmpty(no))
            {
                StlParserManager.ParseInnerContent(new StringBuilder(no), pageInfo, contextInfo);
            }

            var dynamicInfo = new DynamicInfo
            {
                ElementName     = ElementName,
                SiteId          = pageInfo.SiteId,
                ChannelId       = contextInfo.ChannelId,
                ContentId       = contextInfo.ContentId,
                TemplateId      = pageInfo.TemplateInfo.Id,
                AjaxDivId       = ajaxDivId,
                LoadingTemplate = loading,
                SuccessTemplate = yes,
                FailureTemplate = no,
                OnBeforeSend    = onBeforeSend,
                OnSuccess       = onSuccess,
                OnComplete      = onComplete,
                OnError         = onError
            };
            var ifInfo = new DynamicInfo.IfInfo
            {
                Type  = testType,
                Op    = testOperate,
                Value = testValue
            };

            dynamicInfo.ElementValues = TranslateUtils.JsonSerialize(ifInfo);

            return(dynamicInfo.GetScript(ApiRouteActionsIf.GetUrl(pageInfo.ApiUrl)));
        }
Esempio n. 2
0
File: StlIf.cs Progetto: yunxb/cms
        private static string TestTypeDynamic(PageInfo pageInfo, ContextInfo contextInfo, string testType, string testValue, string testOperate, string successTemplateString, string failureTemplateString)
        {
            pageInfo.AddPageBodyCodeIfNotExists(PageInfo.Const.StlClient);

            var ajaxDivId = StlParserUtility.GetAjaxDivId(pageInfo.UniqueId);

            var functionName = $"stlIf_{ajaxDivId}";

            if (string.IsNullOrEmpty(successTemplateString) && string.IsNullOrEmpty(failureTemplateString))
            {
                return(string.Empty);
            }

            var pageUrl = StlParserUtility.GetStlCurrentUrl(pageInfo.SiteInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo, pageInfo.TemplateInfo.TemplateType, pageInfo.TemplateInfo.Id, pageInfo.IsLocal);

            var ifApiUrl   = ApiRouteActionsIf.GetUrl(pageInfo.ApiUrl);
            var ifApiParms = ApiRouteActionsIf.GetParameters(pageInfo.SiteId, contextInfo.ChannelId, contextInfo.ContentId, pageInfo.TemplateInfo.Id, ajaxDivId, pageUrl, testType, testValue, testOperate, successTemplateString, failureTemplateString);

            var builder = new StringBuilder();

            builder.Append($@"<span id=""{ajaxDivId}""></span>");

            builder.Append($@"
<script type=""text/javascript"" language=""javascript"">
function {functionName}(pageNum)
{{
    var url = ""{ifApiUrl}"";
    var data = {ifApiParms};

    stlClient.post(url, data, function (err, data, status) {{
        if (!err) document.getElementById(""{ajaxDivId}"").innerHTML = data.html;
    }});
}}
{functionName}(0);
</script>
");

            return(builder.ToString());
        }