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))); }
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()); }