Click here to Skip to main content
15,887,683 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
In a grid capturing integer value for two different dates using hidden field calling value in grid please guide how to save aging value in SQL table.

.aspx code is
HTML
<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
C#
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);
    }
}


Please help me if possible with some example as it will help me to get better understanding.

What I have tried:

The value is getting bind at pageload and on click event in save button method. however I just wanna know how to define this aging while defining save button's method.
Posted
Updated 17-Feb-17 21:58pm
v2
Comments
njammy 14-Feb-17 5:05am    
Please explain in more detail what Ageing column is for?
Sumit-HopeForBest 16-Feb-17 8:19am    
It's for date difference based on logic
1. the date difference between Date of Entry in the grid and Expected date which is mandate where completion date is not inserted
2.when completion date is inserted then the date difference between Date of Entry and completion date.

1 solution

Why not use a computed column at the SQL table instead of calculating it in your app and save it to the database? With a computed column the age is always up to date for each record depending on the values stored within.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900