Реализуйте пользовательский ASP.NET ListControl, который отправляет данные обратно с помощью JavaScript - PullRequest
0 голосов
/ 10 октября 2011

Я пишу пользовательский серверный элемент управления, унаследованный от ListControl.Я могу изменить отображение элемента управления (переопределяя метод Render), используя "li" с пользовательским CSS вместо обычного тега "option", но как я могу отправить выбранные данные обратно в элемент управления?Я реализовал выбор с использованием JavaScript.Я полагаю, что я должен использовать JavaScript, чтобы отправить элементу управления выбранное значение, но я не знаю, как.Если кто-нибудь сможет привести меня в нужное русло, я буду признателен.

Заранее спасибо

1 Ответ

1 голос
/ 10 октября 2011

используйте JQuery AJAX

$.ajax({  
         type: "GET",  
         url: "process_me.aspx?value=" + $("#id-of-hidden-value-of-list").val(),  
         success: function(){  
            //success (not finished)
            alert("woot!")
            }  
         });  

Я имею в виду, это быстро и грязно.И используйте коллекцию Request.QueryString, чтобы получить значение в выделенном фрагменте кода.

Вместо этого вы можете реализовать скрытый элемент управления в методе рендеринга.В фанатских пристрастиях ASP.NET вы могли бы реализовать IPostBackEventHandler .

Вы можете упростить его, скрыв простой HTML-файл, и использовать коллекцию Request.Form при обратной передаче.

Response.Write("<input type='hidden' name='list-value'>");
..

document.forms[0].list-value.value = selectedValue;
document.forms[0].submit();

.. 

if(Request.Form["list-value"]) != "" { // do something }

И альтернативой ajax является некоторый jquery / javascript, который либо записывает выбранное значение в скрытое, либо в строку запроса формы перед отправкой (что и делает этот код ajax).

...