2011-09-30 94 views
0

我想实现这样的事情,jQuery的动态填充一个选择选项标签

<select id="time" size="1" name="Time" disabled="disabled"> 
    <% foreach (string item in (List<string>)Model.OpenCloseTime[dynamicVariable].AppointmentTimes) 
     {%> 
      <option id="<%:item%>" value="<%:item%>"> 
      <%:item%></option> 
     <%} 
    %> 
</select> 

dynamicVariable= $('#date').datepicker("getDate");

打破了这种问题,GETDATE应该从获取工作日的价值日历,它需要帮助我根据从模型对象日值获得的数据动态填充选择下拉菜单。

我怎么能做到这一点?

感谢您的帮助。

+0

你是说你希望jQuery解决方案提供的ASPX代码? –

+0

是的,我需要通过jQuery动态实现这一点。 – OBL

回答

1

我不知道什么dynamicVariable的样子,但在这里是你如何能填充#time用Javascript数组:

var times = ["Morning", "Afternoon", "Evening"]; 
for(i in times) { 
    $("#time").append(
     $("<option></option>").attr("value", times[i]).text(times[i]) 
    ); 
} 

编辑回答您的评论:

串连列表:

List<string> items = (List<string>)Model.OpenCloseTime[dynamicVariable].AppointmentTimes; 
string itemsStr = string.Join(",", items.toArray()); 

打印到您的javascript:

var items = "<%:itemStr%>"; 

爆炸串入一个Javascript数组:

var items_arr = items.split(","); 

使用什么我上面张贴做出选择框:

for(i in items_arr) { 
    $("#time").append(
     $("<option></option>").attr("value", items_arr[i]).text(items_arr[i]) 
    ); 
} 
+0

当然你可以用jQuery替换''''.each' – alecananian

+0

我的问题是dynamicVariable应该是一个int值,它将充当我的模型对象的索引值来检索特定列表,然后将用它来填充选择标签。 – OBL

+0

您将不得不将您的列表连接成逗号分隔的字符串,然后使用更多的Javascript逻辑来解析它。 Javascript无法直接读取您的ASPX代码。 – alecananian

1

这里是和例如填充使用jQuery选择列表中:

function setCategory(categoryList) 
{ 
    var options = '<option value="Select by Category">Select by Category</option>'; 
    for (var i = 0; i < categoryList.length; i++) 
    { 
     options += '<option value="' + categoryList[i] + '">' + categoryList[i] + '</option>'; 
    }; 
    $("#categorySelect").html(options); 
}; 

注意,这也设置了默认值使用第一行的文本,这可能不是这里的愿望。

相关问题