Home > other >  In ASP.NET MVC C# database First I am doing sum of values in textboxes but in database it does not i
In ASP.NET MVC C# database First I am doing sum of values in textboxes but in database it does not i

Time:03-02

I want to find sum of values in textboxes and then display the SUM in another textbox and also STORE THE SUM IN DATABASE . Using the code below it succesfully find sum and display it in another textbox However it does not store the sum in database.

I checked the database, it shows the value NULL is entered in TotalAvgHours field of database.

[HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create(TimePeriodViewModel timePeriodVM)
            {
                var timeperiod = new TimePeriod
                {
                 
                    TotalAvgHours = timePeriodVM.TimePeriod.TotalAvgHours,
                    
    }

View

Total
            <td>
        @Html.TextBox("TotalAvgHours", "", "{0:c}", new { disabled = "disabled", @class = "form-control", id = "res2" })
        <script type="text/javascript">

            function sum2() {
                var one = document.getElementById('a2').value || "0";
                var two = document.getElementById('b2').value || "0";
                var three = document.getElementById('c2').value || "0";
                var four = document.getElementById('d2').value || "0";
                var five = document.getElementById('e2').value || "0";
                var six = document.getElementById('f2').value || "0";
                var seven = document.getElementById('g2').value || "0";
                var eight = document.getElementById('h2').value || "0";
                var nine = document.getElementById('i2').value || "0";
                var ten = document.getElementById('j2').value || "0";
                var eleven = document.getElementById('k2').value || "0";
                var twelve = document.getElementById('l2').value || "0";
                var thirteen = document.getElementById('m2').value || "0";
                var fourteen = document.getElementById('n2').value || "0";
                var fifteen = document.getElementById('o2').value || "0";

                var result = parseFloat(one)   parseFloat(two)   parseFloat(three)   parseFloat(four)   parseFloat(five)   parseFloat(six)   parseFloat(seven)  
                    parseFloat(eight)   parseFloat(nine)   parseFloat(ten)   parseFloat(eleven)   parseFloat(twelve)   parseFloat(thirteen)   parseFloat(fourteen)   parseFloat(fifteen);
                if (!isNaN(result)) {
                    document.getElementById('res2').value = result;
                }
            }
            window.onload = sum2;

        </script>
    </td>
    
    
</tr>

TimePeriodViewModel

 public class TimePeriodViewModel
    {
        public IEnumerable<Personnel> Personnels { get; set; }
       //public Personnel Personnel { get; set; }
       public int PersonnelID { get; set; }
       
        public IEnumerable<DailyRegister> DailyRegisters { get; set; }
        public DailyRegister DailyRegister { get; set; }
        public TimePeriod TimePeriod { get; set; }

    }

TimePeriod

 public partial class TimePeriod
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public TimePeriod()
        {
            this.DailyRegisters = new HashSet<DailyRegister>();
        }
    
        public int TimePeriodID { get; set; }
        public int PersonnelID { get; set; }
        public System.DateTime StartDate { get; set; }
        public System.DateTime EndDate { get; set; }
        public Nullable<bool> IsSignedAvgAgreement { get; set; }
        public Nullable<bool> IsSignedTimeSheet { get; set; }
        public string SignedAvgBy { get; set; }
        public string SignedTimeSheetBy { get; set; }
        public Nullable<System.DateTime> SignedTimeSheetDate { get; set; }
        public Nullable<decimal> TotalAvgHours { get; set; }
        public Nullable<decimal> TotalTimeSheetHours { get; set; }
        public Nullable<decimal> TotalOvertime { get; set; }
}

CodePudding user response:

Due to disable attribute property applied on you are textbox you are not able to fetch data of it on post instead of it use readonly attribute property on textbox.

Try :

 @Html.TextBox("TotalAvgHours", "", "{0:c}", new { @readonly = "readonly", @class = "form-control", id = "res2" })
        
  • Related