如何使用dropdownlist填充文本框而无需回发?

问题描述:

我有一个asp.net dropDownList列出当天的小时和分钟。我希望选择的时间在一个texbox中显示。这可以做到没有回发?
谢谢
多夫如何使用dropdownlist填充文本框而无需回发?

+0

我加了我自己的答案,它被Robert Harvey删除了。为什么?这对我来说是一个很好的选择!谢谢Dov。 – 2011-03-30 12:19:11

在微软的Ajax控件工具包中有一个ComboBox,它提供了DropDownList和TextBox函数,可以从ComboBox中选择或直接写入TextBox。还可以限制独立写入仅限于ComboBox中的项目或输入不存在的项目。

添加一个onchange的下拉和使用Java脚本来检测下拉选择并写入文本。

如果你不介意使用JavaScript和更具体jQuery您可以设置时间客户端如在这个简单的例子:

HTML:

<head> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
    <script> 
     $(document).ready(function() { 

      function setTime(){ 
       var hours = $(".hours").val(); 
       var mins = $(".minutes").val(); 
       $(".time").val(hours + ":" + mins); 

      }; 

      $(".hours").change(setTime); 
      $(".minutes").change(setTime); 

      // call setTime for first view 
      setTime(); 
     }); 
    </script> 
</head> 
<body> 
    <input type="text" class="time" /> 

    <select class="hours"> 
     <option>1</option> 
     <option>2</option>  
     <option>3</option> 
    </select> 

    <select class="minutes"> 
     <option>15</option> 
     <option>30</option>  
     <option>45</option> 
    </select> 
</body> 

有一个working example here

+0

谢谢你,你的建议看起来很有趣,但我不知道java脚本,所以我不知道如何在我的代码中实现你的想法。我有一个下拉列表,它由c#代码中的PageLoad事件中的循环填充。如何接收dropDownList的选定值并将其传输到文本框,以及代码中的位置是否放置了JavaScript? – 2011-03-29 15:05:40

+0

我已经添加了一些代码来显示在Google内容交付网络(CDN)上对jQuery v1.5.1的引用,并将代码snippit放置在头标记中的脚本标记中。 – Swaff 2011-03-29 15:23:15

+0

谢谢,这非常有帮助。 – 2011-04-07 08:58:20

如果可以使用ajax,则可以使用ajax控件工具包中的更新面板。

它实际上创建了一个回传,但部分是如此最终用户的观点,似乎没有回传发生;和你的观点,只有更新面板中的元素受到回发的影响。