// GET: KomponenPola/Edit/5
        public async Task <IActionResult> AddOrEdit(int?id, bool add = true)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var komponenPola = await _context.TblKomponenPola.FindAsync(id);

            int polaId;

            if (add)
            {
                polaId       = (int)id;
                komponenPola = new KomponenPola();
            }
            else
            {
                polaId = (int)komponenPola.PolaId;
            }

            if (komponenPola == null)
            {
                return(NotFound());
            }

            ViewBag.PolaNama   = _context.TblPola.Find(polaId).Nama;
            ViewBag.PolaId     = polaId;
            ViewData["KompId"] = new SelectList(_context.TblPola.Where(p => p.Status == EStatusPola.Komponen), "PolaId", "Nama", komponenPola.KompId);

            return(View(komponenPola));
        }
        public async Task <IActionResult> AddOrEdit(int id, [Bind("KomPolaId,PolaId,KompId")] KomponenPola komponenPola)
        {
            if (ModelState.IsValid)
            {
                if (id == 0)
                {
                    try
                    {
                        _context.Add(komponenPola);
                        await _context.SaveChangesAsync();
                    }
                    catch (Exception ex)
                    {
                        ModelState.AddModelError("CustomError", ex.Message);
                    }
                }
                else if (id == komponenPola.KomPolaId)
                {
                    try
                    {
                        _context.Update(komponenPola);
                        await _context.SaveChangesAsync();
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!KomponenPolaExists(komponenPola.KomPolaId))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                    }
                }
                var modalAjax = await _context.TblKomponenPola.Include(k => k.Komponen).Include(k => k.Pola)
                                .Where(k => k.PolaId == komponenPola.PolaId).ToListAsync();

                return(Json(new { isValid = true, html = Helper.RenderRazorViewToString(this, "RAB/_TblKomponenPola", modalAjax) }));
            }
            ViewData["KompId"] = new SelectList(_context.TblPola, "PolaId", "Nama", komponenPola.KompId);
            //ViewData["PolaId"] = new SelectList(_context.TblPola, "PolaId", "Nama", komponenPola.PolaId);
            //return View(komponenPola);
            return(Json(new { isValid = false, html = Helper.RenderRazorViewToString(this, "AddOrEdit", komponenPola) }));
        }