填充JScript阵列以便在SELECT上重用

时间:2010-12-07 15:55:36

标签: javascript jquery

请原谅我,如果这已经在StackOverflow上“某处”了,但我并不是100%确切地知道它会发生什么......

我正在尝试从WebService检索信息,将其存储在数组中,然后为我的ASP.Net Datalist中的每个<select>填充数组,并将绑定附加到OnChange事件。

换句话说,我有一个包含“是,否,可能”的数组 我有一个包含10个项目的ASP.Net Datalist,因此我有10个<Select> s,每个都有“Yes,No,Maybe”作为可选项。 当用户更改其中一个<Select>时,会触发一个事件以便我回写到数据库。

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

a)获取页面以填充使用数组创建的<Select> b)按<Select>分配一个更改函数,这样我就可以回写了(写回来我可以轻松完成,它只是绑定事件)。

对此有何想法?

1 个答案:

答案 0 :(得分:3)

我已经建立了一个简单的例子,我想,你想要完成的是什么。我没有用于构建示例的ASP.Net服务器,因此我使用Yahoo的YQL来模拟您从服务器获取的远程数据源。

示例页面=&gt; 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>");
        });
      }
    });
    

    示例数据源=&gt; http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-multiple-selects-from-datasource-datasource.html

    已加载示例:

    alt text

    示例选择值已更改:

    alt text