Skip to content

Popup-Modal Yapısı Layout Kontrolü Controller Yapısı Model Yapısı View Yapısı Linq Sorguları Entity Framework Sorguları Hazır Template Kurulumu ve Düzenlenmesi CSS Kontrolleri Bootstrap Yapısı

Notifications You must be signed in to change notification settings

ilkeresen/MVC5PopupModalApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MVC5PopupModalApp

Murat Yücedağ hocama sevgiler :)

Tema ve Tablolar responsive DataTable ile yapıldı.

Güncelleme,Silme,Detay,Ekleme crud işlemleri için popup-modal kullanıldı.
Listeleme için PartialView yapısı kullanıldı.

Frontend için görüntüleri aşağıdaki gibidir.

author.js ajax işlemleri ile id değerimizi post methodu ile controller'a iletiyoruz dönen değerleri foreach ile listeliyoruz. $.each

///////////////////////////////////////YAZARLAR//////////////////////////////////////////////
//YAZAR SİLME
$(document).on("click", ".AuthorDelete", function () {
 var id = $(this).attr("data-id");
 $("#AuthorID").val(id);
});

$("#AuthorDelete").click(function () {
 var id = $("#AuthorID").val();
 $.ajax({
   type: "POST",
   url: "/Author/AuthorDelete/",
   data: { "id": id },
   dataType: "json",
   success: function () {
     window.location.href = "/Author/Index/";
   }
 });
});
//YAZAR GÜNCELLEME
$(document).on("click", ".AuthorUpdate", function () {
 var id = $(this).attr("data-id");
 $("#AuthorID").val(id);
 $.ajax({
   type: "POST",
   url: "/Author/AuthorGetItem/" + id,
   dataType: "json",
   success: function (data) {
     $("#UpdateAuthorID").val(data.AuthorID);
     $("#UpdateAuthorName").val(data.AuthorName);
     $("#UpdateAuthorSurname").val(data.AuthorSurname);
     $("#UpdateAuthorDetail").val(data.AuthorDetail);
   }
 });
});
$("#AuthorUpdate").click(function () {
 var updatedata = $("#AuthorUpdateForm").serialize();
 $.ajax({
   type: "POST",
   url: "/Author/AuthorUpdate/",
   data: updatedata,
   dataType: "json",
   success: function () {
     window.location.href = "/Author/Index/";
   }
 });
});
//YAZAR EKLEME
$("#AuthorAdd").click(function () {
 var updatedata = $("#AuthorAddForm").serialize();
 $.ajax({
   type: "POST",
   url: "/Author/AuthorAdd/",
   data: updatedata,
   dataType: "json",
   success: function () {
     window.location.href = "/Author/Index/";
   }
 });
});
//YAZAR DETAY
$(document).on("click", ".AuthorDetail", function () {
 var id = $(this).attr("data-id");
 $.ajax({
   type: "POST",
   url: "/Author/AuthorGetItem/" + id,
   dataType: "json",
   success: function (data) {
     $("#DetailAuthorID").val(data.AuthorID);
     $("#DetailAuthorName").val(data.AuthorName);
     $("#DetailAuthorSurname").val(data.AuthorSurname);
     $("#DetailAuthorDetail").val(data.AuthorDetail);
   }
 });
});

$(document).on("click", ".Book", function () {
 var id = $(this).attr("data-id");
 $.ajax({
   type: "POST",
   url: "/Author/AuthorGetBook/" + id,
   dataType: "json",
   success: function (data) {
     if (data != 0) {
       $('#AuthorBook').empty();
       var numberid = 0;
       $.each(data, function (i, item) {
         var rows = "<tr>"
           + "<td>" + (++numberid) + "</td>"
           + "<td>" + item.BookName + "</td>"
           + "<td>" + item.BookAuthor + "</td>"
           + "<td>" + item.BookPublisher + "</td>"
           + "</tr>";
         $('#AuthorBook').append(rows);
       });
     }
     else {
       $('#AuthorBook').empty();
       var rows = "<tr>"
         + "<td colspan='4' style='text-align:center;'>" + " Yazara Ait Kitap Bulunamadı. " + "</td>"
         + "</tr>";
       $('#AuthorBook').append(rows);
     }
   }
 });
});

View bölümünde stabil bootstrap modal yapımızı oluşturuyoruz ek olarak table body bölümüne id = "istenilen_isim" ekliyoruz ve işlemlerimizi bitiriyoruz. Index.cshtml bölümünde tüm kodlar mevcut.

<!-- BOOKS MODAL -->
<div class="modal fade" id="modal-book" style="display: none;" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header bg-dark">
                <h4 class="modal-title"><i class="fas fa-book"></i> Yazar Kitapları</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">×</span>
                </button>
            </div>
            <div class="modal-body">
                <table class="table table-bordered table-hover">
                    <thead>
                        <tr>
                            <th>#</th>
                            <th>Kitap Adı</th>
                            <th>Yazar Adı Soyadı</th>
                            <th>Kitap Yayınevi</th>
                        </tr>
                    </thead>
                    <tbody id="AuthorBook">
                    </tbody>
                    <tfoot>
                        <tr>
                            <th>#</th>
                            <th>Kitap Adı</th>
                            <th>Yazar Adı Soyadı</th>
                            <th>Kitap Yayınevi</th>
                        </tr>
                    </tfoot>
                </table>
            </div>
            <div class="modal-footer justify-content-between">
                <button type="button" class="btn btn-default" data-dismiss="modal">Vazgeç</button>
            </div>
        </div>
    </div>
</div>

Controller da ise Yazara ait kitapları getirmemiz için TBLBook tablosunda bulunan BookAuthor stünundaki değer ile bizim yolladığımız id değerini karşılaştırıyoruz eşit olan id'leri listeliyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVC5Library.Models;

namespace MVC5Library.Controllers
{
    public class AuthorController : Controller
    {
        // GET: Author
        DbLibraryEntities Context = new DbLibraryEntities();
        public ActionResult Index()
        {
            return View();
        }

        public PartialViewResult AuthorList()
        {
            List<TBLAuthor> tBLAuthor = Context.TBLAuthor.Where(x => x.AuthorStatus == true).ToList();
            return PartialView(tBLAuthor);
        }

        [HttpPost]
        public JsonResult AuthorGetBook(int id)
        {
            var areas = Context.TBLBook
            .Where(x => x.BookAuthor == id)
            .Select(y => new
            {
                BookID = y.BookID.ToString(),
                BookName = y.BookName,
                BookAuthor = y.TBLAuthor.AuthorName + " " + y.TBLAuthor.AuthorSurname,
                BookPublisher = y.BookPublisher
            });
            //var liste = Context.TBLBook.Where(x => x.BookAuthor == id).Count();
            return Json(areas, JsonRequestBehavior.AllowGet);
        }

        [HttpPost]
        public JsonResult AuthorDelete(int id)
        {
            TBLAuthor tBLAuthor = Context.TBLAuthor.Where(x => x.AuthorID == id).SingleOrDefault();

            if (tBLAuthor != null)
            {
                tBLAuthor.AuthorStatus = false;
                Context.SaveChanges();
                TempData["item"] = tBLAuthor.AuthorName;
                TempData["icon"] = "fa-trash-alt";
                TempData["message"] = "YAZAR SİLİNDİ.";
                TempData["alert"] = "danger";
            }

            return Json(tBLAuthor, JsonRequestBehavior.AllowGet);
        }
        [HttpPost]
        public JsonResult AuthorGetItem(int id)
        {
            TBLAuthor tBLAuthor = Context.TBLAuthor.Where(x => x.AuthorID == id).FirstOrDefault();
            TBLAuthor NewtBLAuthor = new TBLAuthor();

            if (tBLAuthor != null)
            {
                NewtBLAuthor.AuthorID = tBLAuthor.AuthorID;
                NewtBLAuthor.AuthorName = tBLAuthor.AuthorName;
                NewtBLAuthor.AuthorSurname = tBLAuthor.AuthorSurname;
                NewtBLAuthor.AuthorDetail = tBLAuthor.AuthorDetail;
            }

            return Json(NewtBLAuthor, JsonRequestBehavior.AllowGet);
        }
        [HttpPost]
        public JsonResult AuthorUpdate(TBLAuthor tBLAuthor)
        {
            TBLAuthor GettBLAuthor = Context.TBLAuthor.Find(tBLAuthor.AuthorID);

            if (GettBLAuthor != null)
            {
                GettBLAuthor.AuthorID = tBLAuthor.AuthorID;
                GettBLAuthor.AuthorName = tBLAuthor.AuthorName;
                GettBLAuthor.AuthorSurname = tBLAuthor.AuthorSurname;
                GettBLAuthor.AuthorDetail = tBLAuthor.AuthorDetail;
                Context.SaveChanges();
                TempData["item"] = tBLAuthor.AuthorName;
                TempData["icon"] = "fa-edit";
                TempData["message"] = "KATEGORİ GÜNCELLENDİ.";
                TempData["alert"] = "info";
            }

            return Json(GettBLAuthor, JsonRequestBehavior.AllowGet);
        }
        [HttpPost]
        public JsonResult AuthorAdd(TBLAuthor tBLAuthor)
        {
            if (tBLAuthor != null)
            {
                tBLAuthor.AuthorStatus = true;
                Context.TBLAuthor.Add(tBLAuthor);
                Context.SaveChanges();
                TempData["item"] = tBLAuthor.AuthorName + " " + tBLAuthor.AuthorSurname;
                TempData["icon"] = "fa-check";
                TempData["message"] = "YAZAR EKLENDİ.";
                TempData["alert"] = "dark";
            }

            return Json(tBLAuthor, JsonRequestBehavior.AllowGet);
        }
    }
}

About

Popup-Modal Yapısı Layout Kontrolü Controller Yapısı Model Yapısı View Yapısı Linq Sorguları Entity Framework Sorguları Hazır Template Kurulumu ve Düzenlenmesi CSS Kontrolleri Bootstrap Yapısı

Topics

Resources

Stars

Watchers

Forks