2011-05-10 64 views
1

我是新來的經典ASP。我想根據所選單選按鈕之一在下拉列表中顯示列表。該數據庫具有代碼的列,如「A」和「O」。在頁面上,我想將3個單選按鈕顯示爲A,O和全部。 A =蘋果,O =橙子和全部=蘋果和橘子。比方說,當用戶選擇A時,下拉列表會自動列出所有類型的蘋果或選定的O,然後下拉列表應該列出所有類型的橙子,或者全部列出。該頁面默認會自動顯示蘋果。我如何去顯示頁面上的單選按鈕?我需要JavaScript還是使用單選按鈕選定事件的記錄集?請幫助經典ASP:基於選定單選按鈕的動態下拉列表

+0

只是想確保你詢問有關pre。網絡經典ASP作爲術語「單選按鈕選擇事件」告訴我這可能是ASP.net的網頁形式不是傳統的ASP,它是用vbScript編寫的,沒有事件說每個人都說 – 2011-05-10 06:55:57

+0

是的,我問過關於經典的ASP.You糾正我使用了錯誤的術語......困惑w/ASP.NET。我的錯。 – Emily 2011-05-11 03:59:39

回答

0

你可以只用「正常」(靜態)HTML顯示無線電butttons

然後定義onclick事件並作出ajaxrequest您傳統的ASP網站。根據json中的單選按鈕的值發送下拉菜單的內容,或者只是通過html填充下拉菜單中的內容。

鏈接:

link for JSON

jQuery (which is a cool javascript framework)

documentation for jQuery post (ajax request with jQuery)

因爲你從來沒有使用JSON你可以嘗試把結果作爲HTML像這樣:

<% 
if request.form("act") = "loadDropdown" then 
    dim html : html = "" 

    select case request.form("which") 
     case "A" 
      ' load apples 


      ' write recordset as html to client 
      do while not rs.eof 
       html = html & "<option value='" & rs.fields("applename").value & "'>" &  rs.fields("applename").value & "</option>" 

       rs.movenext 
      loop 
      response.write html 
     case "O" 
      ' load oranges 


      ' write recordset as html to client 
      do while not rs.eof 
       html = html & "<option value='" & rs.fields("applename").value & "'>" & rs.fields("applename").value & "</option>" 

       rs.movenext 
      loop 
      response.write html 
     case "all" 
      ' load all fruits 


      ' write recordset as html to client 
      do while not rs.eof 
       html = html & "<option value='" & rs.fields("applename").value & "'>" & rs.fields("applename").value & "</option>" 

       rs.movenext 
      loop 
      response.write html 
    end select 

    response.end 
end if 
%> 
<script> 
    function loadDropdown(which) { 
     $.post("mySite.asp", { act: "loadDropdown", which: which }, function(data) { 

      // fill dropwon with results of ajax: 
      $("#myDropdown").html(data) 
     }); 
    } 
</script> 
<input type="radio" name="fruits" onclick="loadDropdown('A')"> Apples<br> 
<input type="radio" name="fruits" onclick="loadDropdown('O')" > Oranges<br> 
<input type="radio" name="fruits" onclick="loadDropdown('all')"> All<br> 

<select name="myDropdown" id="myDropdown"></select> 

`

+0

我從不嘗試ajaxrequest/json。如果你可以提供關於ajaxrequest/json的鏈接...關於如何使用它的例子,我非常感謝。感謝你的回答!現在,我可以開始搜索JavaScript了。 – Emily 2011-05-11 04:29:15

0

ASP.net最簡單的方法是使用單選按鈕選定的事件。這樣做的缺點是會觸發頁面的完整回發,因此表單會閃爍或重新加載。

您可以使用Update Panel(Visual Studio 2008及更高版本中可用)來實現此效果。更新面板有其自己的優點和缺點,outlined here。鏈接的文章還顯示瞭如何使用它。

你也可以做到所有的客戶端,特別是如果「蘋果和組織」的組合內容不是特別大。在這裏,您可以加載一組Javascript對象或使用JASON並使用它填充下拉列表。

一個不那麼優雅的方式來做這個客戶端將是呈現三個列表到頁面作爲三個單獨的下拉和使用JavaScript(jQuery是非常強大的)來顯示適當的列表。服務器端,您將從單選按鈕選擇確定的列表中選擇您的值。

+0

我不能在ASP.NET中這樣做,因爲現有的應用程序是在傳統的ASP中。我想按照上面單選按鈕中提到的類型將過濾器添加到現有的下拉菜單中。我的計劃是使用單選按鈕作爲過濾器。我可以在客戶端使用JavaScript。對於單選按鈕,我正在考慮... onSelect而不是onClick。你知道我在哪裏可以找到有關單選按鈕/ JavaScript的好例子嗎?順便說一句,謝謝!我希望我不會把你和我以前的評論混淆。 – Emily 2011-05-11 23:42:28

1

我們用javascript數組做了這樣的東西。我們爲每組值分配了我們稱之爲DataType的內容。例如,蘋果的DataType爲10;桔子的數據類型爲20,梨子的數據類型爲30等。單選按鈕將具有相應的值。 RadioButton.Apple = 10,RadioButton.Orange = 20,RadioButon.Pears = 30等

我們將帶回所有數據類型的所有數據並將其存儲在javascript數組中。我們爲單選按鈕設置onClick或onChange事件,並根據單選按鈕中選定的數據類型重新填充javascript數組中的陰影。

像冠軍一樣工作。

+0

您能否向我提供OnChange上的JavaScript代碼?謝謝!! – Emily 2011-05-16 01:49:17

相關問題