Значение старения (разница дат) нужно сохранить в таблице
В сетке захвата целочисленного значения для двух разных дат с помощью скрытого поля вызова значения в сетке, пожалуйста, укажите, как сохранить значение старения в таблице SQL.
. aspx-код
<asp:GridView ID="grdRemarks" runat="server" AutoGenerateColumns="False" AllowPaging="false" Font-Names="Calibri" Font-Size="Small" OnRowDeleting="grdRemarks_RowDeleting" OnRowDataBound="grdRemarks_RowDataBound" Width="1050px"> <Columns> <asp:TemplateField HeaderText="Date of Entry" ItemStyle-Wrap="false"> <ItemTemplate> <asp:HiddenField ID="hdnNeed_List_Id" runat="server" Value='<%# Eval("Need_List_Id")%>'></asp:HiddenField> <asp:Label ID="lblEnterDate" runat="server" Text='<%# (Eval("Entered_Date") != null && Eval("Entered_Date") is DateTime) ? Convert.ToDateTime(Eval("Entered_Date")).ToString("dd MMM yy") : DateTime.Now.ToString("dd MMM yy") %>' Width="70px"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Category" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Middle"> <ItemTemplate> <asp:HiddenField ID="hdnNeedList_Name" runat="server" Value='<%# Eval("Need_List_Name")%>'></asp:HiddenField> <asp:DropDownList ID="drpNeedList" runat="server" Font-Names="Calibri" ClientIDMode="Static" name="drpNeedList" AutoPostBack="false" Width="120px"> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Description" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Middle"> <ItemTemplate> <asp:TextBox ID="txtNeedDescription" runat="server" Width="400px" Text='<%#DataBinder.Eval(Container, "DataItem.Need_List_Description")%>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Action By" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Middle"> <ItemTemplate> <asp:TextBox ID="txtActionBy" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.Action_By")%>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Aging" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Middle"> <ItemTemplate> <asp:Label ID="lblAging" runat="server" Text="0"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Expected Date" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Middle"> <ItemTemplate> <asp:HiddenField ID="hdnExpectedDate" runat="server" Value='<%#DataBinder.Eval(Container, "DataItem.EXPECTED_DATE") %>'></asp:HiddenField> <telerik:RadDatePicker ID="dtExpectedDate" runat="server" DateInput-DateFormat="dd MMM yyyy" Width="100px" Font-Names="Calibri"> </telerik:RadDatePicker> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Completion Date" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Middle"> <ItemTemplate> <asp:HiddenField ID="hdnCompletion_Date" runat="server" Value='<%#DataBinder.Eval(Container, "DataItem.Completion_Date") %>'></asp:HiddenField> <telerik:RadDatePicker ID="dtCompletion_Date" runat="server" DateInput-DateFormat="dd MMM yyyy" Width="100px" Font-Names="Calibri"> </telerik:RadDatePicker> </ItemTemplate> </asp:TemplateField> <asp:ButtonField CommandName="Delete" Text="Delete" /> </Columns> <HeaderStyle BackColor="Khaki" /> </asp:GridView>
#Используется CSharp
protected void Bind_NeedList_Dropdown(object sender, GridViewRowEventArgs e) { try { Label lblAging = (Label)(e.Row.FindControl("lblAging")); Label lblEnterDate = (Label)(e.Row.FindControl("lblEnterDate")); RadDatePicker dtExpected_Date = (RadDatePicker)(e.Row.FindControl("dtExpectedDate")); HiddenField hdnExpectedDate = (HiddenField)(e.Row.FindControl("hdnExpectedDate")); RadDatePicker dtCompletion_Date = (RadDatePicker)(e.Row.FindControl("dtCompletion_Date")); HiddenField hdnCompletion_Date = (HiddenField)(e.Row.FindControl("hdnCompletion_Date")); string strAge = "0"; if (!String.IsNullOrEmpty(hdnCompletion_Date.Value)) { strAge = (Convert.ToDateTime(hdnCompletion_Date.Value).Date - Convert.ToDateTime(lblEnterDate.Text)).TotalDays.ToString(); } else { strAge = (DateTime.Now.Date - Convert.ToDateTime(lblEnterDate.Text)).TotalDays.ToString(); } lblAging.Text = strAge; DateTime dt = DateTime.Now; if (DateTime.TryParse(hdnExpectedDate.Value, out dt)) { dtExpected_Date.SelectedDate = dt; } if (DateTime.TryParse(hdnCompletion_Date.Value, out dt)) { dtCompletion_Date.SelectedDate = dt; } DropDownList drpNeedList = (DropDownList)(e.Row.FindControl("drpNeedList")); if (drpNeedList != null) { DataSet ds = c.BindNeedListDropDown(); if (ds != null && ds.Tables.Count != 0 && ds.Tables[0] != null && ds.Tables[0].Rows.Count != 0) { DataRow dr = ds.Tables[0].NewRow(); dr["Need_List_Name"] = "--Select--"; dr["Need_List_Name"] = "--Select--"; ds.Tables[0].Rows.Add(dr); drpNeedList.DataTextField = "Need_List_Name"; drpNeedList.DataValueField = "Need_List_Name"; drpNeedList.DataSource = ds.Tables[0]; drpNeedList.DataBind(); string drpValue = (e.Row.FindControl("hdnNeedList_Name") as HiddenField).Value; ListItem li = null; drpNeedList.ClearSelection(); li = drpNeedList.Items.FindByText(drpValue != string.Empty ? drpValue : "--Select--"); if (li != null) { li.Selected = true; } } } } catch (Exception ex) { clsCommon.SetMessage(lblMsg, ex.Message + Environment.NewLine + ex.StackTrace, false); } }
Пожалуйста, помогите мне, если это возможно, с каким-нибудь примером, так как это поможет мне лучше понять.
Что я уже пробовал:
Значение получает привязку при загрузке страницы и при нажатии события в методе save button. однако я просто хочу знать,как определить это старение при определении метода кнопки сохранения.
njammy
Пожалуйста, объясните более подробно, для чего нужна колонка старения?
Sumit-HopeForBest
Это для разницы дат, основанной на логике
1. разница дат между датой ввода в сетку и ожидаемой датой, которая является мандатом, когда дата завершения не вставлена
2. когда дата завершения вставляется, то разница в дате между датой ввода и датой завершения.