ahmed_sa Ответов: 1

Как сопоставить индекс с помощью jquery для восстановления индексов при удалении


Problem

when remove any course from table list html his position in center or first it make problem

in index in database

Details

IF I have list of courses as following :

Delphi

Flash

Photoshop

IF I remove flash by JQUERY remove button then click save button

it delete flash and Photoshop

because there are wrong in delete courses by using remove function in jquery

if i remove php it is working without any problem because it is last item

suggestion

using map function when remove but how to do that

if there are any solution for that without using map no problem

i use model as following


<pre>public class Cusomemp2
    {
        public List<EmployeeCourse> empcourses { get; set; }

    }
}

я использую для редактирования протоколы HttpPost

<pre>var result = db.Employees
             .Where(p => p.Id == custom.Id)
             .Include(c => c.EmployeeCourses)
             .FirstOrDefault();
        if (custom.empcourses.Any())
        {
            foreach (var ec in result.EmployeeCourses.ToList())//to remove existing EmployeeCourses
            {
                db.EmployeeCourses.Remove(ec);
                db.SaveChanges();

            }
        }

        result.EmployeeCourses = custom.empcourses;
     db.SaveChanges();




in model view my code as following by jquery

actually i need to modify code below using map function if there are any function do that never mind


<pre>$(function () {
           //add courses using drop down
            var index = 0;
            $("#CourseId").change(function () {

                var id = $(this).val();
                var txt = $("#CourseId option:selected").text();

               $("#tb").append("<tr><td><input type = 'hidden' name='empcourses[" + index + "].CourseId' value='" + id + "'/></td><td>" + txt + "</td><td><input type='button' value='remove' class='r'</td></tr>")

                index++;

            });
            $("#tb").on("click", ".r", function () {
              // remove function
                $(this).parent().parent().remove();

                $(this).parent().prev().prev().remove();
             });

// retrieve data in edit view using ajax
            $.ajax({
                url: "/Employee/getcoursesbyempid",
                data:{x:$("#hid").val()},
                success: function (res) {
                    $.each(res, function (i, e) {

                          $("#tb").append("<tr><td><input type = 'hidden' name='empcourses[" + index + "].CourseId' value='" + e.Id + "'/></td><td>" + e.CourseName + "</td><td><input type='button' value='remove' class='r'</td></tr>")

                        index++;
                    });
                }

            })
        });



смотрите изображение ниже, чтобы узнать, что мне нужно
Простой обмен файлами и их хранение.[^]

Что я уже пробовал:

как сопоставить индекс с помощью jquery для восстановления индексов при удалении

ahmed_sa

моя проблема не в коде контроллера моя проблема как использовать функцию map в jquery для восстановления индекса

ahmed_sa

если вы можете помочь мне, чтобы сопоставить функцию, пожалуйста, с моей помощью jQuery код

1 Ответов

Рейтинг:
2

Patrice T

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

Цитата:
как сопоставить индекс с помощью jquery для восстановления индексов при удалении

Похоже, вы предполагаете что-то неправильное и ищете решение чего-то, что не является проблемой.
Вы должны начать с принципа, что ваш код делает то, что вы просили, и что вы просили неправильно.
foreach (var ec in result.EmployeeCourses.ToList())//to remove existing EmployeeCourses
{
    db.EmployeeCourses.Remove(ec);
    db.SaveChanges();
 }

Здесь вы удаляете курсы, внося изменения в db.
Как вы думаете, почему добавление курсов не делается таким же образом ?
   result.EmployeeCourses = custom.empcourses;
db.SaveChanges();

Добавление курсов в result будет ли бот распространяться на db