Skip to main content

asp.net mvc add & remove item from html table


To add & remove item in HTML table like this image you can like the this:

Model:

  public class StudentDetailsModels  
   {  
     public System.Guid? StudentId { get; set; }  
     public System.String StudentName { get; set; }  
     public System.String StudentFatherName { get; set; }  
     public System.String StudentAddress { get; set; }  
   }  


  public class StudentModels  
   {  
     [Key]  
     public System.Guid? StudentId { get; set; }  
     public System.String StudentName { get; set; }  
     public System.String StudentFatherName { get; set; }  
     public System.String StudentAddress { get; set; }  
     private List<StudentDetailsModels> _studentDetailsList = new List<StudentDetailsModels>();  
     public List<StudentDetailsModels> StudentDetailsList  
     {  
       get { return _studentDetailsList; }  
       set { _studentDetailsList = value; }  
     }  
   }  


View:

 @{  
   ViewBag.Title = "StudentInfo";  
   Layout = "~/Views/Shared/_Layout.cshtml";  
 }  
  <div id="divStudentDetails">  
   @Html.Partial("StudentInfoDetails")  
 </div>  

 @model ADD_REMOVE_ITEM_TABLE.Models.StudentModels  
 <script>  
   function Add() {  
     {  
       var targetDiv = '#divStudentDetails';  
       var url = "/Student/AddStudent";  
       var form = $('#frmStudentDetails');  
       var serializedForm = form.serialize();  
       $.post(url, serializedForm, function (result) { $(targetDiv).html(result); }, "html");  
       return false;  
     }  
   }  
   function Remove(ctrl) {  
     if (confirm('Pressing OK will delete this record. Do you want to continue?') == false) {  
       return false;  
     }  
     var row = $(ctrl).parent().parent().parent().children().index($(ctrl).parent().parent());  
 //    alert(row);  
     $("#refRowIndex").val(row);  
     var form = $("#frmStudentDetails");  
     var serializedForm = form.serialize();  
     var url = "/Student/RemoveStudentDetails";  
     $.post(url, serializedForm, function (result) {  
       $("#divStudentDetails").html(result);  
     }, "html");  
     return false;  
   }  
 </script>  
 <form id="frmStudentDetails">  
   <input type="hidden" id="refRowIndex" name="refRowIndex" />  
   <div class="form-horizontal">  
     <h4>Fermar Information</h4>  
     <hr />  
     <div class="form-group">  
       <table>  
         <tr>  
           <td>  
              @Html.LabelFor(model => model.StudentName, "Name" )  
           </td>  
           <td>  
              @Html.EditorFor(model => model.StudentName)  
              @Html.ValidationMessageFor(model => model.StudentName)  
           </td>  
           <td>  
              @Html.LabelFor(model => model.StudentFatherName, "Father" )  
           </td>  
           <td>  
             @Html.EditorFor(model => model.StudentFatherName)  
             @Html.ValidationMessageFor(model => model.StudentFatherName)  
           </td>  
             </tr>  
           <tr>  
           <td>  
              @Html.LabelFor(model => model.StudentAddress, "Address" )  
           </td>  
           <td>  
           @Html.EditorFor(model => model.StudentAddress)  
           @Html.ValidationMessageFor(model => model.StudentAddress)  
           </td>  
           <td>  
             <input type="submit" value="Add" class="btn btn-default" onclick="return Add();" />  
           </td>  
             </tr>  
       </table>  
       <table class="table">  
         <tr>  
           <th>  
            Name  
           </th>  
           <th>  
              Father Name  
           </th>  
           <th>  
             Address  
           </th>  
           <th>  
             Remove  
           </th>  
         </tr>  
         @for(int i=0;i<Model.StudentDetailsList.Count();i++)  
         {  
           <tr>  
             <td>  
               @Html.EditorFor(m => m.StudentDetailsList[i].StudentName)  
             </td>  
             <td>  
               @Html.EditorFor(m => m.StudentDetailsList[i].StudentFatherName)  
             </td>  
             <td>  
               @Html.EditorFor(m => m.StudentDetailsList[i].StudentAddress)  
             </td>  
             <td >  
               <input value="Remove" type="button" onclick="return Remove(this);" />  
             </td>  
           </tr>  
         }  
       </table>  
        <input value="Save" type="button" />  
     </div>  
     </div>  
   </form>  

Controller:

 public ActionResult StudentInfo()  
     {  
       StudentModels model = new StudentModels();  
       model.StudentDetailsList = new List<StudentDetailsModels>();  
       return View(model);  
     }  
     public ActionResult AddStudent(StudentModels model)  
     {  
       StudentDetailsModels studentObj = new StudentDetailsModels();  
       studentObj.StudentName = model.StudentName;  
       studentObj.StudentFatherName = model.StudentFatherName;  
       studentObj.StudentAddress = model.StudentAddress;  
         model.StudentDetailsList.Add(studentObj);  
         return PartialView("StudentInfoDetails", model);  
     }  
     public ActionResult RemoveStudentDetails(StudentModels model, FormCollection collection)  
     {  
       int rowIndex = int.Parse(collection.Get("refRowIndex"));  
       model.StudentDetailsList.RemoveAt(rowIndex - 1);  
       ModelState.Clear();  
       return PartialView("StudentInfoDetails", model);  
     }  


Comments

Popular posts from this blog

WPF datagrid cell textbox change event

Entity/Class: public class FeesDetails : INotifyPropertyChanged { public int Id { get; set; } public string FeesName { get; set;} public string FeesDetailsName { get; set; } public int? PaidAmount { get; set; } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(System.String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public int feesAmount { get; set; } public int FeesAmount { get { return this.feesAmount; } set { if (value != this.feesAmount) { this.feesAmount = value; NotifyPropertyChanged("FeesAmount"); } } } } XAML: <DataGrid AutoGenerateColumns="False" Height="21...

mvc razor textboxfor change event change another textboxfor value

Based on value of Weight, Rate , CNF & AWB it will change the value of Freight , TTLCNF anfd TTLFright . Freight= Weight*Rate; TTLCNF  = Weight*CNF; TTLFright=  Freight+ TTLCNF  + AWB; @Html.TextBoxFor(model => model.Weight, new { onChange="return GetWight(this);"}) @Html.TextBoxFor(model => model.Rate, new { onChange="return GetWight(this);"})/Kg @Html.TextBoxFor(model => model.Freight, new {disabled = "disabled" , @readonly = "readonly" ,onChange="return GetTTLFright(this);"}) @Html.TextBoxFor(model => model.CNFPK, new { onChange="return GetCNFPK(this);"}) @Html.TextBoxFor(model => model.TTLCNF, new {disabled = "disabled" , @readonly = "readonly",onChange="return GetTTLFright(this);" }) @Html.TextBoxFor(model => model.AWB, new { onChange="return GetTTLFright(this);"}) and script <script> function GetW...

C# run powershell script as administrator

Recently I was fetching a problem that I need to run a PowerShell script that will change TFS user Display name and SID. I was trying to run that script from C# that was not working due to TFS security update and TLS certificate. Using this code block I resolve the Issue. var newProcessInfo = new System.Diagnostics.ProcessStartInfo(); newProcessInfo.FileName = @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"; newProcessInfo.Verb = "runas"; // Define Run as administrator newProcessInfo.Arguments = script; //Define your powershell script newProcessInfo.UseShellExecute = false; newProcessInfo.RedirectStandardOutput = true; // This will enable to read Powershell run output newProcessInfo.RedirectStandardError = true; Process proces = System.Diagnostics.Process.Start(newProcessInfo); proces.WaitForExit(); // I want to read the output string from powershell window StringBuilder output = new StringBuilder(); output.Append("Started"); while (!proces.St...