2010-12-07 59 views
1

原諒我,如果這是已經在計算器上「地方」,但我不是100%準確知道它會來下...填充JScript數組重用開選擇

我試圖檢索信息從一個WebService中,將它存儲在一個數組中,然後在我的ASP.Net Datalist中爲每個<select>填充數組並且綁定到一個OnChange事件。

換句話說,我有一個包含數組「是,否,也許」 我有一個ASP.Net Datalist中有十個項目,因此我不得不10 <Select> s各自一個有「是,否也許「作爲一個可選項目。 當用戶更改其中一個<Select>時,我會觸發一個事件以回寫數據庫。

我知道我可以使用[ID = ^但不知道如何:

一)獲取的頁面來填充<Select>因爲它與陣列 b創建)分配每<Select>變更功能所以我可以寫回(寫回我可以輕鬆做到,它只是綁定事件)。

對此有何看法?

回答

3

我已經建立了一個簡單的例子,演示,我想,你正試圖完成。我沒有用於構建示例的ASP.Net服務器,因此我使用雅虎的YQL來模擬您將從服務器獲得的遠程數據源。

例頁=>http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-multiple-selects-from-datasource.html

示例步驟:

  1. 查詢數據源獲得的選擇問題,陣列選擇的
  2. 構建HTML
  3. 追加HTML到
  4. 附加更改事件偵聽器以選擇
  5. 上選擇值變化
  6. 提交值

實施例的jQuery:

// get list of questions 
$.ajax({ 
    url: url, 
    dataType: "jsonp", 
    success: function(data) { 

    // build string of HTML of selects to append to page 
    var selectHtml = ""; 
    $(data.query.results.p).each(function(index, element) { 
     selectHtml += '<select class="auto" name="question'+index+'"><option value="Yes">Yes</option><option value="No">No</option><option value="Maybe">Maybe</option></select> '+element+'<br/>'; 
    }); 

    // append HTML to page 
    $(document.body).append(selectHtml); 

    // bind change event to submit data 
    $("select.auto").change(function() { 
     var name = $(this).attr("name"); 
     var val = $(this).val(); 
     // replace the following with real submit code 
     $(document.body).append("<p>Submitting "+name+" with value of "+val+"</p>"); 
    }); 
    } 
}); 

實施例的數據源=>http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-multiple-selects-from-datasource-datasource.html

實施例加載:

alt text

例選擇值改爲:

alt text

+0

麥克這是一個很好的例子,太感謝你了,真的很感謝您對此的輸入。 – JasonMHirst 2010-12-08 08:29:50