Asp.Net UpdatePanel в Gridview Jquery DatePicker
<asp:UpdatePanel ID="asd" runat="server">
<ContentTemplate>
<asp:GridView ID="gvUpdate" runat="server">
<Columns>
<asp:TemplateField HeaderText="DATE">
<ItemTemplate>
<asp:Label ID="lblDate" runat="server" Text='<%# Eval("DATE","{0:dd.MM.yyyy}")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDate" runat="server" Text='<%# Eval("DATE","{0:dd.MM.yyyy}") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</ContentTemplate>
я хочу jquery datepicker для "txtDate", как сделать?
Спасибо...
1 ответ
Решение
Самый простой способ - поместить класс в поле "Текст даты" и просто использовать jQuery, чтобы добавить указатель даты...
<EditItemTemplate>
<asp:TextBox ID="txtDate" CssClass="clDate"
runat="server" Text='<%# Eval("DATE","{0:dd.MM.yyyy}") %>'></asp:TextBox>
</EditItemTemplate>
и JavaScript для init это: $(".clDate").datepicker();
но панель обновления требует повторной инициализации после обновления, поэтому окончательный код будет:
<script type="text/javascript">
// if you use jQuery, you can load them when dom is read.
$(document).ready(function () {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
// Place here the first init of the DatePicker
$(".clDate").datepicker();
});
function InitializeRequest(sender, args) {
// make unbind to avoid memory leaks.
$(".clDate").unbind();
}
function EndRequest(sender, args) {
// after update occur on UpdatePanel re-init the DatePicker
$(".clDate").datepicker();
}
</script>
Обновление: о Сис. -> http://msdn.microsoft.com/en-us/library/bb311028.aspx