This question is locked. New answers and comments are not allowed.
Hey
I try make some grid and in editor some dropdown. Idea is make table with ID and parentID to make parents and children Example:
Model:
Control:
View:
ViewModel
EditorTemplates -> Paragrafy.cshtml
Im sure u got the idea but it is not working :). Can u show me the way where i make mistake ? how make selected when edit and take values to the update :) Tx for help.
I try make some grid and in editor some dropdown. Idea is make table with ID and parentID to make parents and children Example:
Model:
public class Paragraf{ [Key] [ScaffoldColumn(false)] public virtual int ParagrafID { get; set; } public virtual int ParagrafParent { get; set; } public virtual string ParagrafNazwa { get; set; }}Control:
public ViewResult Index(){ return View(paragrafRepository.All);}//// AJAX GRID: select, insert, update, delete[AcceptVerbs(HttpVerbs.Post)][GridAction]public ActionResult _IndexAjax(){ return View(new GridModel(paragrafRepository.All));}
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult _UpdateAjax(int id)
{
Paragraf updateParagraf = paragrafRepository.Find(id);
try
{
if (updateParagraf != null)
{
if (TryUpdateModel(updateParagraf))
{
UpdateModel(updateParagraf);
paragrafRepository.Save();
return View(new GridModel(paragrafRepository.All));
}
}
}
catch (DataException)
{
//Log the error (add a variable name after DataException)
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
}
//Rebind the grid
return View(new GridModel(paragrafRepository.All));
}
[HttpPost]
public ActionResult _AjaxParentParagrafLoading(int slecectedParent)
{
var parentParagraf = from p in paragrafRepository.All
orderby p.ParagrafNazwa
select new ParagrafParentViewModel
{
ParagrafID = p.ParagrafID,
ParagrafParent = p.ParagrafParent,
ParagrafNazwa = p.ParagrafNazwa
};
List<SelectListItem> items = new SelectList(parentParagraf.ToList(), "ParagrafID", "ParagrafNazwa", slecectedParent).ToList();
items.Insert(0, (new SelectListItem { Text = "No Parent", Value = "0" }));
ViewData["Paragrafy"] = items;
return new JsonResult { Data = items };
}
View:
@model IEnumerable<Projekty03.Models.Paragraf>@(Html.Telerik().Grid(Model)
.Name("ParagrafGrid") .Columns(columns => { columns.Bound(c => c.ParagrafParent); columns.Bound(c => c.ParagrafNazwa); columns.Command(commands => { commands.Edit(); commands.Delete(); }); }) .DataBinding(dataBinding => { //Ajax binding dataBinding.Ajax() //Home.Index renders the grid initially .Select("_IndexAjax", "Paragraf") //Home.Insert inserts a new data record .Insert("_InsertAjax", "Paragraf") //Home.Update updates an existing data record .Update("_UpdateAjax", "Paragraf") //Home.Delete deletes an existing data record .Delete("_DeleteAjax", "Paragraf"); }) .DataKeys(dataKeys => dataKeys.Add(c => c.ParagrafID)) .ToolBar(commands => commands.Insert()) .Editable(editing => editing .Mode(GridEditMode.InLine)) .Pageable() .Sortable() .Filterable() .Groupable())public class ParagrafParentViewModel{ public virtual int ParagrafID { get; set; } public virtual int ParagrafParent { get; set; } public virtual string ParagrafNazwa { get; set; }}@( Html.Telerik().DropDownList() .Name("Paragrafy") .DataBinding(binding => binding.Ajax().Select("_AjaxParentParagrafLoading", "Paragraf")))Im sure u got the idea but it is not working :). Can u show me the way where i make mistake ? how make selected when edit and take values to the update :) Tx for help.