让jQuery datepicker附加到ListView中的TextBox

时间:2010-06-16 21:16:32

标签: asp.net jquery listview jquery-ui-datepicker

我正在使用jQuery Datepicker,对于非模板化的TextBox控件没有任何问题。但是,我无法使用datepicker来处理ListView控件的EditItemTemplate中的TextBox。我最近的尝试是通过CSS类名“DateControl”处理这个文本框,任何想法?

<asp:ListVIew id="lvTest" runat="server">  
  <LayoutTemplate>...</LayoutTemplate>  
  <ItemTemplate>...</ItemTemplate>  
  <EditItemTemplate>  
     <tr>  
       <td>  
         <asp:TextBox ID="txtExpReceiveDate" runat="server" Text='<%#Eval("exp_receive_date","{0:dd-MMM-yy}") %>' CssClass="DateControl" />  
       </td>  
     </tr>  
  </EditTemplate>  
</asp:ListView>

<script type="text/javascript" language="javascript">  
   $(document).ready(function () {  
     $('.DateControl').datepick({ dateFormat: 'M-dd-yyyy' });  
   });  
</script>

3 个答案:

答案 0 :(得分:1)

使用jQuery选择时,在类名的开头需要.(就像CSS一样):

$(document).ready(function () {  
  $('.DateControl').datepick({ dateFormat: 'M-dd-yyyy' });  
});  

答案 1 :(得分:1)

原来我只需将日期选择器附加到我的控件内...

function pageLoad(sender, args){}

而不是......

$(document).ready(function () {});

答案 2 :(得分:1)

我使用ListView已经有一段时间了,但我认为Edit控件是动态公开的 - 没有回发。

因此,为了附加到动态包含的元素,您需要使用新的jquery live - 不确定是否可以执行类似

的操作
$('.DateControl').live('click', function() {
  $('.DateControl').datepick({ dateFormat: 'M-dd-yyyy' });  
});

或者如果您必须将其附加到Edit事件,例如:

$("DateControl").live("showEdit", function(e, myName, myValue){
  $('.DateControl').datepick({ dateFormat: 'M-dd-yyyy' });  
});
$("EditControl").click(function () {
  $("DataControl").trigger("showEdit");
});

但这应该足以让你开始。