0

对于非模板化的 TextBox 控件,我使用 jQuery 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>
4

3 回答 3

1

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

$(document).ready(function () {  
  $('.DateControl').datepick({ dateFormat: 'M-dd-yyyy' });  
});  
于 2010-06-16T21:18:12.693 回答
1

事实证明,这只是我需要将日期选择器附加到我的控件内部的情况......

function pageLoad(sender, args){}

代替...

$(document).ready(function () {});
于 2010-06-17T13:15:04.353 回答
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");
});

但这应该足以让你开始。

于 2010-06-17T13:20:06.883 回答