如何填充在客户端动态添加的下拉列表

本文关键字:动态 客户端 添加 下拉列表 何填充 填充 | 更新日期: 2023-09-27 17:51:00

我试图创建一个类似DataEntry Grid/table的结构,用户在按钮单击上附加新行。这行是TextBoxes, DropDown, Calendar Control。所有这些都应该在客户端完成。到目前为止,我有这个,正如你所看到的,我试图用var data对象填充DropDown(这是不工作的)..我需要你的帮助是从数据库中填充DropDown。我该怎么做?

代码(更新):

    <script src="js/jquery-1.11.0.js" type="text/javascript"></script>
<table id="field">
    <tr>
        <td>Alternatif <span class='num'>1</span></td>
        <td><input type="text" /></td>
        <td><select id="myDropDownLisTId"> <input type="text" id="datepicker"></select></td>
    </tr>
</table>
<button type="button" id="addField">Add Field</button>
<button type="button" id="deleteField">Delete Field</button>
<script id="template" type="text/template">
<tr>
    <td class="number">Alternatif</td>
    <td><input type="text" /></td>
     <td><select id="myDropDownLisTId"> <input type="text" id="datepicker"></td>
</tr>
</script>
 <script type="text/javascript">
     $(document).ready(function () {
         $("#addField").click(function (event) {
             $($("#template").html()).appendTo($("#field tbody")).show("slow");
             if ($("td").hasClass("number")) {
                 var i = parseInt($(".num:last").text()) + 1;
                 $($("<span class='num'> " + i + " </span>")).appendTo($(".number")).closest("td").removeClass('number');
             }
             event.preventDefault();
         });
         $("#deleteField").click(function (event) {
             var lengthRow = $("#field tbody tr").length;
             if (lengthRow > 1)
                 $("#field tbody tr:last").remove();
             event.preventDefault();
         });
     });
     var data = [
    { id: '0', name: 'test 0' },
    { id: '1', name: 'test 1' },
    { id: '2', name: 'test 2' },
    { id: '3', name: 'test 3' },
    { id: '4', name: 'test 4' },
];

     for (i = 0; i < data.length; i++) {
         $("#myDropDownLisTId").append(
        $('<option />', {
            'value': data[i].id,
            'name': data[i].name,
            'text': data[i].name
        })
                );
     }
    </script>

我现在能够用硬编码的var data填充第一个下拉菜单,但其余的动态生成的下拉菜单总是空的

如何填充在客户端动态添加的下拉列表

我认为绑定下拉菜单的最好方法是从客户端。因此,创建一个web服务或web api,将获取数据下拉框,然后使用jquery Ajax调用从服务器端获取数据,并填充下拉框。

另一个方法是创建webmethod来获取数据。你可以在下面的链接中找到更多的信息。

http://www.aspsnippets.com/Articles/Populate-Bind-DropDownList-using-JavaScript-and-ASP.Net-AJAX.aspx

 var data = [
    { id: '0', name: 'test 0' },
    { id: '1', name: 'test 1' },
    { id: '2', name: 'test 2' },
    { id: '3', name: 'test 3' },
    { id: '4', name: 'test 4' },
];

var li="";
for(int i=0;i<data.length;i++)
{
li +='<li>'+data.id+'</li>'
}

$('selector').append(li){
//...
}