protected void SaveData()
    {
        ltmessage.Text = "";

        int ItemId           = -1;
        int res              = -1;
        int Trading_Range_Id = -1;

        try
        {
            int       RowID                 = 0;
            string    Item_Group            = ddlItemgroup.SelectedValue;
            string    Item_Description      = txtItemDescription.Text;
            int       Billing_Interval      = Convert.ToInt32(txtBilling_Interval.Text);
            string    Billing_Interval_Unit = ddlIntervalUnit.SelectedValue;
            string    Item_Rate             = ddlItemRate.SelectedValue;
            DataTable dt = GetAddTable();
            foreach (GridDataItem item in rgdItems.MasterTableView.Items)
            {
                DropDownList ddlLTGMTP          = (DropDownList)(item.FindControl("ddlLTGMTP"));
                DropDownList ddlHoursWEFP       = (DropDownList)(item.FindControl("ddlHoursWEFP"));
                DropDownList ddlMinsWEFP        = (DropDownList)(item.FindControl("ddlMinsWEFP"));
                TextBox      txtPWFF            = (TextBox)(item.FindControl("txtPWFF"));
                int          hdnBilling_Item_Id = 0;
                int          hdnTPId            = 0;
                if (((HiddenField)item.FindControl("hdnBilling_Item_Id")).Value != "")
                {
                    hdnBilling_Item_Id = Convert.ToInt32(((HiddenField)item.FindControl("hdnBilling_Item_Id")).Value);
                }
                if (((HiddenField)item.FindControl("hdnTPId")).Value != "")
                {
                    hdnTPId = Convert.ToInt32(((HiddenField)item.FindControl("hdnTPId")).Value);
                }
                string  WEF    = "";
                DataRow dritem = dt.NewRow();
                if (txtPWFF.Text != "")
                {
                    WEF = AddHourMin(txtPWFF.Text, ddlHoursWEFP.SelectedValue, ddlMinsWEFP.SelectedValue);
                    dritem["Billing_Item_Amount_Id"] = hdnBilling_Item_Id;
                    dritem["Trading_Date"]           = WEF;
                    dritem["Trading_Range_Id"]       = hdnTPId;
                    dritem["Date_Zone"]     = ddlLTGMTP.SelectedValue;
                    dritem["Trading_Range"] = ((TextBox)item.FindControl("txtTradingRange")).Text;
                    dritem["Amount"]        = ((TextBox)item.FindControl("txtItem_Amount")).Text;
                    dt.Rows.Add(dritem);
                }
            }


            if (dt != null)
            {
                ItemId = objCP.INS_UPD_Billing_Item(UDFLib.ConvertIntegerToNull(Session["CPID"]), UDFLib.ConvertIntegerToNull(ViewState["ItemId"]), Item_Group, Item_Description, Billing_Interval, Billing_Interval_Unit, Item_Rate, UDFLib.ConvertIntegerToNull(Session["USERID"].ToString()));

                if (ItemId > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        Trading_Range_Id       = objCP.INS_UPD_Trading_RangeByItem(UDFLib.ConvertIntegerToNull(dr["Trading_Range_Id"]), UDFLib.ConvertIntegerToNull(Session["CPID"]), UDFLib.ConvertDateToNull(dr["Trading_Date"]), dr["Trading_Range"].ToString(), dr["Date_Zone"].ToString(), UDFLib.ConvertIntegerToNull(Session["USERID"].ToString()));
                        dr["Trading_Range_Id"] = Trading_Range_Id;
                    }
                    if (dt.Columns["Trading_Date"] != null)
                    {
                        dt.Columns.Remove(dt.Columns["Trading_Date"]);
                    }
                    if (dt.Columns["Date_Zone"] != null)
                    {
                        dt.Columns.Remove(dt.Columns["Date_Zone"]);
                    }
                    if (dt.Columns["Trading_Range"] != null)
                    {
                        dt.Columns.Remove(dt.Columns["Trading_Range"]);
                    }
                    if (Trading_Range_Id == 0)
                    {
                        ltmessage.Text = "WEF date can not be duplicate!";
                    }
                    else
                    {
                        res = objCP.INS_UPD_Billing_Item_Price(UDFLib.ConvertIntegerToNull(Session["CPID"]), ItemId, dt, UDFLib.ConvertIntegerToNull(Session["USERID"].ToString()));


                        BindItems();
                    }
                }
            }
            else
            {
                ltmessage.Text = "No trading range information found!";
            }

            ClearData();
        }
        catch (Exception ex)
        {
            ltmessage.Text = ex.ToString();
        }
    }