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

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

ASP.NET MVC razor SAP Crystal report

Crete a new project: Add a aspx Master Page Create a new folder Reports and 2 sub folder crystal & crystalviewer Now add a web form page in crystalviewer  folder. Add the master page namespace in your web form page. MasterPageFile ="~/Views/Shared/ReportSite.Master" Replace your web form by this code < asp : Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server">      </ asp : Content > Now go to design mode of your web form drag & drop the crystal report viewer in your web form. After that your page will be look look like this. Replace the code: < CR : CrystalReportViewer ID ="EmployeeList" runat ="server"   HasCrystalLogo ="False"     AutoDataBind ="True"   Height ="50px"   EnableParameterPrompt ="false" EnableDatabaseLogonPrompt

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