Sumit-HopeForBest Ответов: 1

Старение (разница между двумя датами на основе логики) значение, которое будет храниться во время выполнения


Может ли кто-нибудь помочь мне сохранить значение старения во время выполнения ?
Я собираюсь отправить свой код здесь, а перед этим я хотел бы кратко рассказать вам о сетке.
когда я введите дату Вале в сети и старение становится рассчитывается при вводе кнопку Сохранить/добавить новую строку кнопки, однако я заявил старения, как Стинг и инициализировать значение как 0, поэтому изначально значение 0 вам сохранить первый раз, когда я нажимаю на кнопку Сохранить но значение выдержки вам рассчитали на уровне страницы, когда снова нажмите на кнопку Сохранить/добавить новые кнопки вам сохранить расчетную старения значение в ДБ.

Исходный код для .страница ASPX


<tr>
                   <td align="left">
                       <asp:Panel runat="server" ID="Panel1" Visible="true">
                           <table width="1050px">
                               <tr>
                                   <td align="center">
                                       MOC :
                                       <asp:Label runat="server" ID="lblmocnofordisplay" Text="" Font-Size="Small"></asp:Label>
                                   </td>
                               </tr>
                               <tr>
                                   <td align="center">
                                       <asp:Label ID="lblDisRemarks" runat="server"></asp:Label>
                                   </td>
                               </tr>
                               <tr>
                                   <td>
                                       <cc1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" runat="Server" TargetControlID="pnlRemarks"
                                           Collapsed="false" ExpandControlID="lblRemarks_Header" CollapseControlID="lblRemarks_Header"
                                           AutoCollapse="False" AutoExpand="False" TextLabelID="lblRemarks_Header" CollapsedText="Show Discipline Remarks..."
                                           ExpandedText="Hide Remarks..." ImageControlID="Image1" ExpandDirection="Vertical" />
                                       <fieldset runat="server" id="Fieldset1" style="border: medium solid #000080; margin: 5px;">
                                           <legend style="border: 2px outset #FFFFFF; margin: 5px;">
                                               <asp:Label ID="lblRemarks_Header" runat="server" Text="Discipline Remarks" BorderColor="Navy"></asp:Label>
                                           </legend>
                                           <asp:Panel ID="pnlRemarks" runat="server" Width="1050px" Visible="false">
                                               <table width="100%">
                                                   <tr>
                                                       <td width="30%" align="left">
                                                               Engineering Completed
                                                       </td>
                                                       <td width="30%" align="left">
                                                               Balance To Go
                                                       </td>
                                                       <td width="30%" align="left">
                                                               Need List
                                                       </td>

                                                   </tr>
                                                   <tr>
                                                       <td>
                                                           <asp:TextBox ID="txtEngCompleted" runat="server" TextMode="MultiLine" Height="60px"
                                                               Width="90%"></asp:TextBox>
                                                       </td>
                                                       <td>
                                                           <asp:TextBox ID="txtBalToGo" runat="server" TextMode="MultiLine" Height="60px" Width="90%"></asp:TextBox>
                                                       </td>
                                                       <td>
                                                           <asp:TextBox ID="txtNeedList" runat="server" TextMode="MultiLine" Height="60px" Width="90%"></asp:TextBox>
                                                       </td>

                                                   </tr>
                                                   <tr>
                                                       <td align="left">
                                                               Lead
                                                       </td>
                                                        <td align="left">
                                                               RE
                                                       </td>
                                                        <td align="left">
                                                               MOC Stage
                                                       </td>
                                                   </tr>
                                                   <tr>
                                                        <td>
                                                           <asp:DropDownList ID="ddlLead" runat="server">
                                                           </asp:DropDownList>
                                                       </td>
                                                       <td>
                                                           <asp:TextBox ID="txtLeadMgr" onkeypress="javascript:return UpperCase();" runat="server"
                                                               TextMode="SingleLine"  MaxLength="40"></asp:TextBox>
                                                       </td>
                                                        <td align="left">
                                                           <asp:DropDownList ID="ddlMOCStage" runat="server">
                                                           </asp:DropDownList>
                                                       </td>
                                                   </tr>
                                                   <tr>
                                                         <td align="left" colspan="3" style="width: 950px">
                                                           <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='<%#DataBinder.Eval(Container, "DataItem.Aging_Days")%>'></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>
                                                       </td>

                                                   </tr>
                                                   <tr>
                                                       <td align="center" colspan="4">
                                                            <asp:Button ID="btnAddNewNeed" runat="server" Text="Add New Need List" OnClick="btnAddNewNeed_Click"
                                                               ValidationGroup="SaveRemark" />
                                                           <asp:Button ID="btnSaveRemarks" runat="server" Text="Save" OnClick="btnSaveRemarks_Click" />
                                                       </td>
                                                   </tr>
                                               </table>
                                           </asp:Panel>
                                       </fieldset>
                                   </td>
                               </tr>



КОД C#

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using DAL;
using Telerik.Web.UI;

<pre>public partial class Frm_T_Deliverable : System.Web.UI.Page
{
    #region Private Variables
    DataTable dtNeedList = new DataTable();
    classforcommon c = new classforcommon();
    DataTable dtDCN = new DataTable();
    DataTable dtDCN_Del = new DataTable();
    MOC m = new MOC();
     MOC _obj = null;

protected void Page_Load(object sender, EventArgs e)
    {
        //Un comment while deploying
        _obj = new MOC();
        if (Request.ServerVariables["HTTP_REFERER"] == null)
        {
       //     Response.Redirect("http://realnet.in.ril.com/Realnet/aspx/mypage.aspx");
        }
        if (Session["role"] != null)
        {
            if (Session["role"].ToString() != "Lead Engineer" && Session["role"].ToString() != "Admin")
            {
                Response.Redirect("Unauthorized_Page.aspx");
            }
            string discp = Session["DisciplineId"].ToString();
            if (discp == "2")
            {
                lblDeliverables_Header.Text = "Deliverables (Not Part of DCN)";
            }
            else
            {
                lblDeliverables_Header.Text = "Deliverables";
            }
            Session["DisciplineId"] = discp;
            // SqlDataSource1.SelectParameters["DisciplineId"].DefaultValue = discp;
        }
        else
        {
        //    Response.Redirect("http://realnet.in.ril.com/Realnet/aspx/mypage.aspx");
        }

        if (!IsPostBack)
        {
            ddljob.DataSource = c.bindjobdropdown();
            ddljob.DataBind();

            rcbREIMS.DataSource = c.bindReimsDropdown("", "", "");
            rcbREIMS.DataBind();

            Fill_Lead_1();
            Fill_MOC_Stage();

            btnFetch_Click(sender, e);

        }
        lblMsg.Text = "";
        lblMsgDCN.Text = "";
        lblMsgDCN_Del.Text = "";
        lblDisRemarks.Text = "";
    }

protected void btnAddNewNeed_Click(object sender, EventArgs e)
  {
      try
      {
          btnSaveRemarks_Click(sender, e);
          dtNeedList = (DataTable)ViewState["Record_need"];
          DataRow dr = dtNeedList.NewRow();
          dtNeedList.Rows.Add(dr);
          grdRemarks.DataSource = dtNeedList;
          grdRemarks.DataBind();
          if (grdRemarks.Rows.Count > 0)
          {

              ViewState["Record_need"] = dtNeedList;
          }
      }
      catch (Exception ex)
      {
          clsCommon.SetMessage(lblMsg, ex.Message + Environment.NewLine + ex.StackTrace, false);
      }
  }

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 if (hdnExpectedDate.Value.ToString() != "")
           {
               strAge = (Convert.ToDateTime(hdnExpectedDate.Value) - DateTime.Now.Date).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);
       }
   }


 private DataTable Regenerate_Need_DataTable()
    {
        dtNeedList = ((DataTable)ViewState["Record_need"]).Clone();
        for (int i = 0; i <= grdRemarks.Rows.Count - 1; i++)
        {
            HiddenField hdnNeed_list_Id = (HiddenField)(grdRemarks.Rows[i].FindControl("hdnNeed_List_Id"));
            Label lblEntered_Date = (Label)(grdRemarks.Rows[i].FindControl("lblEnterDate"));
            DropDownList drpNeedList = (DropDownList)(grdRemarks.Rows[i].FindControl("drpNeedList"));
            TextBox txtNeedDescription = (TextBox)(grdRemarks.Rows[i].FindControl("txtNeedDescription"));
            TextBox txtActionBy = (TextBox)(grdRemarks.Rows[i].FindControl("txtActionBy"));
            Label lblAging = (Label)(grdRemarks.Rows[i].FindControl("lblAging"));
            RadDatePicker dtExpectedDate = (RadDatePicker)grdRemarks.Rows[i].FindControl("dtExpectedDate");
            RadDatePicker dtCompletion_Date = (RadDatePicker)grdRemarks.Rows[i].FindControl("dtCompletion_Date");

            DataRow dr = dtNeedList.NewRow();
            if (!String.IsNullOrEmpty(hdnNeed_list_Id.Value))
            {
                dr["Need_List_Id"] = hdnNeed_list_Id.Value;
            }
            else
            {
                dr["Need_List_Id"] = -1;
            }
            dr["Need_List_Name"] = drpNeedList.Text;
            dr["MOC_ID"] = Convert.ToInt32(ViewState["MOCID"]);
            dr["Discipline_ID"] = Convert.ToInt32(ViewState["DISCID"]);
            dr["Need_List_Description"] = txtNeedDescription.Text;
            dr["Action_By"] = txtActionBy.Text;
            dr["Aging_Days"] = lblAging.Text;
            if (lblEntered_Date.Text == string.Empty)
            {
                dr["Entered_Date"] = DBNull.Value;
            }
            else
            {
                dr["Entered_Date"] = Convert.ToDateTime(lblEntered_Date.Text);
            }
            if (dtExpectedDate.SelectedDate == null)
            {
                dr["Expected_Date"] = DBNull.Value;
            }
            else
            {
                dr["Expected_Date"] = dtExpectedDate.SelectedDate;
            }
            if (dtCompletion_Date.SelectedDate == null)
            {
                dr["Completion_Date"] = DBNull.Value;
            }
            else
            {
                dr["Completion_Date"] = dtCompletion_Date.SelectedDate;
            }
            dtNeedList.Rows.Add(dr);
        }
        return dtNeedList;
    }
    protected void grdRemarks_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        try
        {

            HiddenField hdnNeed_list_Id = (HiddenField)(grdRemarks.Rows[e.RowIndex].FindControl("hdnNeed_List_Id"));

            dtNeedList = Regenerate_Need_DataTable();
            string id = "-1";
            if (!String.IsNullOrEmpty(hdnNeed_list_Id.Value))
            {
                id = hdnNeed_list_Id.Value;
            }
            if (dtNeedList.Rows.Count > 0)
            {
                DataRow dr = dtNeedList.Select("Need_List_Id = " + id)[0];

                if (dr != null)
                {

                    dtNeedList.Rows.Remove(dr);
                    ViewState["Record_need"] = dtNeedList;
                    SaveRemark(2);
                }
            }

        }

        catch (Exception ex)
        {
            clsCommon.SetMessage(lblMsg, ex.Message + Environment.NewLine + ex.StackTrace, false);
        }
    }
    protected void grdRemarks_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Bind_NeedList_Dropdown(sender, e);
        }
    }

    public void Reset_NeedList_Grid()
    {
        DataTable dtNeedList = _obj.Select_MOC_Discipline_NeedList(ViewState["MOCID"].ToString(), ViewState["DISCID"].ToString());
        //if (dtNeedList.Rows.Count == 0)
        //{
        //    DataRow dr = dtNeedList.NewRow();
        //    dtNeedList.Rows.Add(dr);
        //}
        ViewState["Record_need"] = dtNeedList;
        grdRemarks.DataSource = dtNeedList;
        grdRemarks.DataBind();
    }

    private void SaveRemark(int intFlag)
    {
        try
        {
            if (ViewState["MOCID"] != null)
            {
                string strMessageToDisplay = "";
                if (ddlLead.SelectedIndex == 0)
                {
                    strMessageToDisplay = "Select Lead";
                }
                if (txtLeadMgr.Text.Trim() == "")
                {
                    strMessageToDisplay += "<br>Enter RE";

                }
                if (ddlMOCStage.SelectedIndex == 0)
                {
                    strMessageToDisplay += "<br>Enter MOC Stage";

                }
                if (intFlag == 1)
                {
                    dtNeedList = Regenerate_Need_DataTable();

                }
                else
                {
                    dtNeedList = (DataTable)ViewState["Record_need"];
                }
                if (dtNeedList.Rows.Count > 0)
                {
                    if (dtNeedList.Select("LEN(Need_List_Name) =0 or Need_List_Name='--Select--'").Length > 0)
                    {
                        strMessageToDisplay += "<br>Select Need List Name wherever not selected in Grid.";
                    }

                    if (dtNeedList.Select("LEN(Need_List_Description) =0").Length > 0)
                    {
                        strMessageToDisplay += "<br>Enter Need List Description wherever not selected in Grid.";
                    }

                    if (dtNeedList.Select("LEN(Action_By) = 0").Length > 0)
                    {
                        strMessageToDisplay += "<br>Enter Action_By wherever not selected in Grid.";
                    }

                    if (dtNeedList.Select("Expected_Date is null").Length > 0)
                    {
                        strMessageToDisplay += "<br>Enter Expected_Date wherever not selected in Grid.";
                    }


                }

                if (!string.IsNullOrEmpty(strMessageToDisplay))
                {

                    clsCommon.SetMessage(lblDisRemarks, strMessageToDisplay, false);
                }
                else
                {
                    object[] obj = new object[8];
                    obj[0] = ViewState["MOCID"];
                    obj[1] = txtLeadMgr.Text.ToUpper();
                    obj[2] = txtEngCompleted.Text;
                    obj[3] = txtBalToGo.Text;
                    obj[4] = txtNeedList.Text;
                    obj[5] = ViewState["DISCID"];
                    obj[6] = ddlLead.SelectedValue;
                    obj[7] = ddlMOCStage.SelectedValue; //MOC Stage
                    if (dtNeedList.Rows.Count > 0)
                    {
                        m.InsertNeedList(dtNeedList, Convert.ToInt32(ViewState["MOCID"]), Convert.ToInt32(ViewState["DISCID"]));
                    }

                    int objlastid = m.UpdateDisciplineRemarks(obj, Session["UserID"].ToString());
                    if (objlastid == 0)
                    {
                        clsCommon.SetMessage(lblDisRemarks, "Status and Need list data saved Successfully.", true);
                    }

                    ViewState["Record_need"] = dtNeedList;
                    grdRemarks.DataSource = dtNeedList;
                    grdRemarks.DataBind();
                    Reset_NeedList_Grid();
                }
            }
        }
        catch (Exception ex)
        {
            clsCommon.SetMessage(lblMsg, ex.Message + Environment.NewLine + ex.StackTrace, false);
        }
    }

    protected void dgMOC_SelectedIndexChanged(object sender, EventArgs e)
    {
        //ViewState["Record_need"] = dtNeedList;
        //grdRemarks.DataSource = dtNeedList;
        grdRemarks.DataBind();
        Reset_NeedList_Grid();
    }
}


Что я уже пробовал:

Я хочу попробовать объявить sting как глобальную переменную и проверить кнопку save, если она не равна null, а затем вызвать aging.

Graeme_Grant

Слишком много кода ... разбейте его на простой пример проблемы. например: вот как я вычисляю, и это ошибка/проблема, с которой я столкнулся.

Разработчики жертвуют и жертвуют своим собственным временем бесплатно, чтобы помочь коллегам-разработчикам разрешить трудности. Важно, чтобы Вы были кристально ясны в том, что вы испытываете, с большим количеством информации, чтобы ваше и их время не было потрачено впустую. Чем яснее вопрос, тем больше шансов, что вы получите благоприятный ответ своевременно.

Пожалуйста, найдите время, чтобы просмотреть эти ссылки, прежде чем отправлять вопросы:
* Базовая отладка с помощью Visual Studio 2010-YouTube[^]
* Некоторые рекомендации по размещению вопросов на форумах[^]
* Сказки из Империи Зла-задавать вопросы-это навык[^]

Как только вы будете готовы обновить вопрос с четкими и краткими деталями, образцом кода, любыми сообщениями об ошибках (включая внутренние детали исключения) и т. д., Пожалуйста, нажмите на кнопку Улучшить вопрос чтобы добавить больше информации к этому вопросу.

NotPolitcallyCorrect

https://www.codeproject.com/Questions/1170360/Aging-value-dates-difference-want-to-store-in-tabl