Пример #1
0
        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());
        }
Пример #2
0
        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());
        }