实现一个自定义ASP.NET ListControl,该控件使用javascript回发数据

实现一个自定义ASP.NET ListControl,该控件使用javascript回发数据,javascript,asp.net,custom-controls,Javascript,Asp.net,Custom Controls,我正在编写一个从ListControl继承的自定义服务器控件。 我可以使用带有自定义CSS的“li”而不是使用普通标记“option”来更改控件的呈现(覆盖呈现方法),但是如何将所选数据发送回控件? 我已经使用javascript实现了选择。 我想我必须使用javascript向控件发送所选的值,但我不知道如何发送。 如果有人能以正确的方式告诉我,我将不胜感激 提前感谢使用一些jquery ajax $.ajax({ type: "GET", url:

我正在编写一个从ListControl继承的自定义服务器控件。 我可以使用带有自定义CSS的“li”而不是使用普通标记“option”来更改控件的呈现(覆盖呈现方法),但是如何将所选数据发送回控件? 我已经使用javascript实现了选择。 我想我必须使用javascript向控件发送所选的值,但我不知道如何发送。 如果有人能以正确的方式告诉我,我将不胜感激

提前感谢

使用一些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集合获取代码隐藏中的值

您可以改为在render方法中实现隐藏控件。ASP.NET fan boi会让您实现

您可以使它更简单,隐藏一个普通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 }
Response.Write(“”);
..
document.forms[0]。list-value.value=selectedValue;
document.forms[0]。提交();
.. 
if(Request.Form[“list value”])!=“{//做点什么}”

ajax的alt是一些jquery/javascript,在提交之前将所选的值写入隐藏的查询字符串或表单的查询字符串(这就是ajax代码所做的)。

Hi BobTodd。我无法使用该解决方案,因为我想编写一个自定义服务器控件,“ajax”jquery方法只能用于页面,而不能用于自定义控件。您可以在Render()方法中使用page.ClientScript.RegisterClientScriptBlock()从自定义控件发出jquery。只要确保隐藏控件具有唯一的ID,以防在一个页面上需要多个自定义控件