or
@using ePN.Core.Domain@using Kendo.Mvc.UI.Fluent@model VW_HolidayDatesGridDisplay@{ ViewBag.Title = "Holiday Schedule";}@functions { private void GridCommandDef(GridColumnFactory<VW_HolidayDatesGridDisplay> columns) { columns.Command(command => { command.Edit(); command.Destroy(); }).Width(180); columns.Bound(p => p.ID).Hidden(); columns.Bound(p => p.Year).Width(50); columns.Bound(p => p.Month).Width(100); columns.ForeignKey(p => p.HolidayID, (IEnumerable<BankHoliday>) ViewBag.Holiday, "ID", "Name") .Title("Name") .Groupable(false) .Sortable(false); columns.Bound(p => p.HolidayDate).Format("{0:MM/dd/yyyy}").Groupable(false).EditorTemplateName("Date").Width(100); } private void GridDataSource(DataSourceBuilder<VW_HolidayDatesGridDisplay> dataSource) { dataSource.Ajax() .Model(AjaxDataSourceBuilder) .Create(create => create.Action("Holidays_Create", "Holiday")) .Read(read => read.Action("Holidays_Read", "Holiday")) .Update(update => update.Action("Holidays_Update", "Holiday")) .Destroy(destroy => destroy.Action("Holidays_Destroy", "Holiday")); } private void AjaxDataSourceBuilder(DataSourceModelDescriptorFactory<VW_HolidayDatesGridDisplay> model) { model.Id(p => p.ID); model.Field(p => p.Year).Editable(false); model.Field(p => p.Month).Editable(false); model.Field(p => p.HolidayID).DefaultValue(1); model.Field(p => p.HolidayDate); } private void GridToolBarDef(GridToolBarCommandFactory<VW_HolidayDatesGridDisplay> toolbar) { toolbar.Create().Text("Schedule a Holiday"); GridToolBarCustomCommandBuilder<VW_HolidayDatesGridDisplay> popup = toolbar.Custom(); popup.Text("Create New Holiday"); popup.Name("NewHoliday"); popup.Url("#"); popup.HtmlAttributes(new {onclick = "void(openModal())", style="float:right"}); }}@section PageScripts{ <script type="text/javascript"> // <reference path="/Scripts/kendo.all-vsdoc.js" /> var holidayWindow; var holidayDataSource = new kendo.data.DataSource({ transport: { dataType: "json", cache: false, read: { url: "@Url.Action("BankHolidays_Read","BankHoliday",null,"http")" } }, schema: { type: "json", data: function(response) { return response.Data; }, model: { fields: { ID: { editable: false, nullable: false, type: "number" }, Name: { editable: false } } } } }); var rowEdit = function(e) { var ddl = $("#HolidayID").data("kendoDropDownList"); ddl.dataTextField = "Name"; ddl.dataValueField = "ID"; ddl.dataSource = holidayDataSource; ddl.refresh(); console.log(["DDL",ddl]); }; var openModal = function () { var mWindow = holidayWindow || $("#modalWindow").kendoWindow({ actions: ["Refresh", "Close"], title: "Manage Holidays", visible: false, height: "400px", width: "600px", modal: true, draggable: false, resizable: false, content : "@Url.Action("Index","BankHoliday",null,"http")" }).data("kendoWindow"); mWindow.center().open(); }; </script>}<h2>Holiday Schedule</h2><div id="modalWindow"></div>@(Html.Kendo().Grid<VW_HolidayDatesGridDisplay>() .Name("Grid") .Events(e => e.Edit("rowEdit")) .Columns(GridCommandDef) .DataSource(GridDataSource) .ToolBar(GridToolBarDef) .Editable(settingsBuilder => settingsBuilder.Mode(Kendo.Mvc.UI.GridEditMode.InLine)) .Scrollable(settingsBuilder => settingsBuilder.Height(400)) .Groupable() .Sortable())@(Html.Kendo().Window() .Name("window") .Content(@<text> @(Html.Kendo().Upload() .Name("files") ) </text>) .Draggable() .Resizable() .Width(600))How can I change the fields that display for an Add/Update? For an add I need to have 4 fields display and for an edit I need to only display 2. I tried creating a template usercontrol but it is showing up for both an add/update. I tried modifying the viewmodel and that is applying the changes to both the add/update also.
Grid:
@(Html.Kendo().Grid(Model) .Name("CodeManager") .Columns(columns => { columns.Bound(p => p.CodeID); columns.Bound(p => p.Status); columns.Command(command => { command.Edit(); }).Width(200); }) .ToolBar(toolBar => toolBar.Create()) .Editable(editable => editable.Mode(GridEditMode.PopUp)) .Sortable() .Scrollable() .Groupable() .Pageable() .Filterable() .DataSource(dataSource => dataSource .Ajax() .Events(events => events.Error("error_handler")) .ServerOperation(false) .Model(model => { model.Id(p => p.CodeID); model.Field(p => p.CodeID).Editable(false); model.Field(p => p.Title).Editable(false); }) //.Read(read => read.Action("GetPersons", "CodeManager", new { classifications = @ViewBag.SelectedCatgory })) .Update(update => update.Action("EditingCustom_Update", "CodeManager")) .Create(update => update.Action("EditingCustom_Update", "CodeManager")) ) .Editable(ed => ed.Mode(GridEditMode.PopUp).TemplateName("_CodeEditor")) )Control:
public ActionResult Index(string classifications = "") { ViewData["Category"] = classifications; ViewData["Classifications"] = new SelectList(Classifications.List, "ClassificationText", "ClassificationText", classifications); var codModels = new List<CodeModel>(); ViewBag.SelectedCatgory = classifications ?? "Type"; if (Request.HttpMethod == "POST") { var model = _codeRepository.Search(classifications).ToModel(); return View(model); } return View(codModels); }Model:
blic class CodeModel { public string CodeID { get; set; } public string Title { get; set; } public string Status { get; set; } public bool Active { get; set; } public string Category { get; set; } public int UserID { get; set; } }
Thanks
Dennis
if ($.browser.msie) { var oldFxPlay = $.telerik.fx.play; $.telerik.fx.play = function () { var target = $(arguments[1]); if (target.is(".t-menu .t-group") && !target.find("iframe").length) { target.append("<li style='width:100%;height:100%;z-index:-1;position:absolute;top:0;left:0;'>" + "<iframe src='#' frameborder='0' style='width:100%;height:100%;z-index:-1;position:absolute;'></iframe>" + "</li>"); } oldFxPlay.apply(this, Array.prototype.slice.apply(arguments)); };}