Обновление DatePicker от itemtemplate
У меня есть код для обновления даты из sqldatasource updateCommand.
Код:
<asp:GridView ID="gdLog" runat="server" GridLines="Horizontal" CellPadding="3" CssClass="gridRows" HeaderStyle-CssClass="gridHreader" AlternatingItemStyle-CssClass="gridAlterRows" Width="100%" AutoGenerateColumns="False" AutoGenerateEditButton="True" DataKeyNames="hometemplateID" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="hometemplateID" HeaderText="hometemplateID" InsertVisible="False" ReadOnly="True" SortExpression="hometemplateID" Visible="False" />
<asp:BoundField DataField="ttitle" HeaderText="title" SortExpression="ttitle" />
<asp:TemplateField HeaderText="start">
<ItemTemplate>
<asp:Label runat="server" ID="tstart"
Text='<%# makeShortDate(DataBinder.Eval(Container.DataItem, "tstart")) %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tStartdEdit" runat="server" class="form-control calender-icon datepicker date" Text='<%# makeShortDate(DataBinder.Eval(Container.DataItem, "tstart")) %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="end">
<ItemTemplate>
<asp:Label runat="server" ID="tend"
Text='<%# makeShortDate(DataBinder.Eval(Container.DataItem, "tend")) %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tendEdit" runat="server" class="form-control calender-icon datepicker date" Text='<%# makeShortDate(DataBinder.Eval(Container.DataItem, "tend")) %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="tActive" HeaderText="Active" SortExpression="tActive" />
<asp:BoundField DataField="tdatecreated" HeaderText="date added" InsertVisible="False" ReadOnly="True" SortExpression="tdatecreated" />
</Columns>
<HeaderStyle CssClass="gridHreader">
</HeaderStyle>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Dbconnection %>" SelectCommand="EXEC [usp_SelectHomePageItems] @templateid=1, @rows=1" UpdateCommand="update hometemplate set title=@ttitle, startdate=@tstart, isActive=@tActive where hometemplateID=@hometemplateID">
<UpdateParameters>
<asp:Parameter Name="tstart" />
<asp:Parameter Name="tend" />
</UpdateParameters>
</asp:SqlDataSource>
Есть 2 выбора даты (начало и конец). Мне нужно использовать функцию makeShortDate для форматирования текста для указателей даты, потому что когда я выбираю из него, кажется, что он использует формат месяц имяпространство деньпространство год
Если я этого не сделаю и просто использую Bind("tstart") на edititemtemplate, то после нажатия кнопки "edit" он отображается в текстовом поле как 25/7/2018 12:00:00 AM.... день сначала по какой-то причине, и я не хочу, чтобы это сбивало с толку моих клиентов. Также ужасно показывать вещи в 12:00. Он также выбирает неправильную дату, когда я щелкаю значок календаря, тогда как, если я сначала форматирую, он выбирает правильную.
Когда я пробую свой код как есть, по какой-то причине дата становится пустой. Я думаю, что мне нужно привязать на edititemTemplate, но, как уже упоминалось, мне нужно отформатировать дату с помощью функции makeShortdate.
Так как же получить текстовое поле для дат, которые будут месяц / день / год после нажатия "изменить" вместо "день / месяц / год 12:00:00"? Я могу сделать это с помощью функции makehortdate, но затем по какой-то причине для даты устанавливается нулевое значение.
Извините за отступ кода, не уверен, как сделать отступ для блока кода здесь.
DatePicker является DatePicker для начальной загрузки. В шапке я использую:
$(function () {
$('.datepicker').datepicker({
format: 'MM dd yyyy',
autoclose: true,
});
});
1 ответ
Хорошо, получил с форматированием:
<asp:TemplateField HeaderText="start">
<ItemTemplate>
<asp:Label runat="server" ID="tstart" DataField="startdate"
Text='<%# DataBinder.Eval(Container.DataItem, "startdate","{0:MMM dd yyyy}") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate >
<asp:TextBox ID="tStartdEdit" runat="server" class="form-control calender-icon datepicker date" Text='<%# Bind("startdate","{0:MMM dd yyyy}") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>