private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, InputInfo inputInfo, NameValueCollection pageScripts, List <TableStyleInfo> styleInfoList, string template, string loading, string yes, string no) { pageInfo.AddPageScriptsIfNotExists(PageInfo.Components.Jquery); var stlContainerId = $"stl_input_{inputInfo.InputId}"; var stlFormId = $"stl_form_{inputInfo.InputId}"; template = StlParserManager.ParseInnerContent(template, pageInfo, contextInfo); loading = StlParserManager.ParseInnerContent(loading, pageInfo, contextInfo); yes = StlParserManager.ParseInnerContent(yes, pageInfo, contextInfo); no = StlParserManager.ParseInnerContent(no, pageInfo, contextInfo); var templateBuilder = new StringBuilder(); templateBuilder.Append($@" <script type=""text/javascript"" src=""{SiteFilesAssets.Input.GetScriptUrl(pageInfo.ApiUrl)}""></script> <form id=""{stlFormId}"" name=""{stlFormId}"" style=""margin:0;padding:0"" method=""post"" enctype=""multipart/form-data"" action=""{ActionsInputAdd.GetUrl(pageInfo.ApiUrl, pageInfo.PublishmentSystemId, inputInfo.InputId)}"" target=""stl_iframe_{inputInfo.InputId}""> {template} </form> <iframe id=""stl_iframe_{inputInfo.InputId}"" name=""stl_iframe_{inputInfo.InputId}"" width=""0"" height=""0"" frameborder=""0""></iframe> "); foreach (string key in pageScripts.Keys) { templateBuilder.Append(pageScripts[key]); } var idList = new List <string>(); var formElements = StlHtmlUtility.GetHtmlFormElements(templateBuilder.ToString()); if (formElements != null && formElements.Count > 0) { foreach (var formElement in formElements) { string tagName; string innerXml; NameValueCollection attributes; StlHtmlUtility.ParseHtmlElement(formElement, out tagName, out innerXml, out attributes); if (string.IsNullOrEmpty(attributes["id"])) { continue; } foreach (var styleInfo in styleInfoList) { if (!StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, attributes["id"])) { continue; } string validateAttributes; var validateHtmlString = GetValidateHtmlString(styleInfo, out validateAttributes); attributes["id"] = styleInfo.AttributeName; attributes["name"] = styleInfo.AttributeName; var replace = StringUtils.EqualsIgnoreCase(tagName, "input") ? $@"<{tagName} {TranslateUtils.ToAttributesString(attributes)} {validateAttributes} />{validateHtmlString}" : $@"<{tagName} {TranslateUtils.ToAttributesString(attributes)} {validateAttributes} >{innerXml}</{tagName}>{validateHtmlString}"; templateBuilder.Replace(formElement, replace); idList.Add(styleInfo.AttributeName); } } } StlHtmlUtility.RewriteSubmitButton(templateBuilder, $"inputSubmit(this, '{stlFormId}', '{stlContainerId}', [{TranslateUtils.ToSqlInStringWithQuote(idList)}]);return false;"); StlParserManager.ParseInnerContent(templateBuilder, pageInfo, contextInfo); return($@" <div id=""{stlContainerId}""> <div class=""stl_input_template"">{templateBuilder}</div> <div class=""stl_input_loading"" style=""display:none"">{loading}</div> <div class=""stl_input_yes"" style=""display:none"">{yes}</div> <div class=""stl_input_no"" style=""display:none"">{no}</div> </div> "); }