private string BuildScript() { List <string> SubscriberDropdowns = ProvideFor.Split(';').ToList(); StringBuilder scriptStringBuilder = new StringBuilder(); /** * Add */ SubscriberDropdowns.ForEach(subscriberDropdown => { scriptStringBuilder.Append($@" $(document).off('change').on('change', '#{Provider}', function(event){{ const selected = $(this).val(); $.ajax({{ url: `${{BASE_URL}}/DropdownProvider/ChildDropdown?ParentId={Provider}&SubDropdownKey={SubDropdownKey}&ParentValue=${{selected}}`, success: function(selectListItems){{ $('#{subscriberDropdown}').empty(); selectListItems.forEach(selectListItem => {{ $('<option/>').val(selectListItem.value).html(selectListItem.text).appendTo('#{subscriberDropdown}'); }}); }}, error: function(err){{ console.error('Ddl autolink error: ', err); }} }}); }})" ); scriptStringBuilder.Append($@" $('#{Provider}').trigger('change'); " ); }); return(scriptStringBuilder.ToString()); }
private string BuildScript() { List <string> SubscriberDropdowns = ProvideFor.Split(';').ToList(); StringBuilder scriptStringBuilder = new StringBuilder(); /** * Add */ SubscriberDropdowns.ForEach(subscriberDropdown => { scriptStringBuilder.Append($@" document.getElementById('{Provider}').ondropdownchanged = async function(event){{ const selected = this.value; const autolinkSubdropdownItemsRes = await fetch(`{contextAccessor.HttpContext.Request.Scheme}://{contextAccessor.HttpContext.Request.Host}/AutoLinkDropdownProvider/ChildDropdown?ParentId={Provider}&SubDropdownKey={SubDropdownKey}&ParentValue=${{selected}}`, {{headers: {{ 'Content-Type': 'application/json' }} }}) const autolinkSubdropdownItems = await autolinkSubdropdownItemsRes.json() let targetDropdown = document.getElementById('{subscriberDropdown}') targetDropdown.innerHTML = '' autolinkSubdropdownItems.forEach(selectListItem => {{ const el = document.createElement('option'); el.textContent = selectListItem.text; el.value = selectListItem.value; targetDropdown.options.add(el); }}) }} if(document.getElementById('{Provider}').ondropdownchanged) document.getElementById('{Provider}').removeEventListener('change', document.getElementById('{Provider}').ondropdownchanged) document.getElementById('{Provider}').addEventListener('change', document.getElementById('{Provider}').ondropdownchanged); let changeEvent = new Event('change') document.getElementById('{Provider}').dispatchEvent(changeEvent) " ); }); return(scriptStringBuilder.ToString()); }