2011-10-10 39 views
0

我正在寫一個自定義服務器控件繼承ListControl。 我可以改變控件的渲染(覆蓋Render方法),使用「li」而不是使用普通標籤「option」的自定義CSS,但是我怎樣才能將選定的數據發送回控件? 我已經使用javascript實現了選擇。 我想我必須使用JavaScript發送到控件的選定值,但我不知道如何。 如果有人能以正確的方式帶我,我會感激。實現一個自定義ASP.NET ListControl,回發數據與JavaScript

在此先感謝

回答

1

使用一些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的粉絲boi會讓你執行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 } 

而且在alt阿賈克斯是一些jQuery的/ JavaScript的,要麼提交它(這是什麼,Ajax代碼是做)之前所選擇的VALU寫入隱藏或形式的查詢字符串。

+0

Hi BobTodd。 我無法使用該解決方案,因爲我想編寫自定義服務器控件,並且「ajax」jquery方法只能用於頁面,而不能用於自定義控件。 –

+0

你可以在你的Render()方法中使用Page.ClientScript.RegisterClientScriptBlock()從自定義控件中發出jquery。只要確保您的隱藏控件具有獨特的ID,以防萬一您需要在一個頁面上使用多個自定義控件 –