or
@(Html.Kendo().Scheduler<iMail.Web.Models.TaskViewModel>() .Name("scheduler") .Date(DateTime.Now) .StartTime(new DateTime(2013, 6, 13, 7, 00, 00)) .Height(600) .Views(views => { views.DayView(); views.WeekView(); views.MonthView(); views.AgendaView(agenda => agenda.Selected(true)); }) .Selectable(true) .Timezone("Etc/UTC") .Events(e => e.Edit("onEdit")) .Editable(editable => { editable.TemplateName("_EditorTemplatePartial"); editable.Resize(true); }) .DataSource(d => d .Model(m => { m.Id(f => f.TaskID); m.Field(f => f.Title).DefaultValue("No title"); m.RecurrenceId(f => f.RecurrenceID); m.Field(e => e.Attendees).DefaultValue(new List<iMail.Web.Models.CalendarAttendeeModel>()); }) .Events(e => e.Error("error_handler")) .Read("TasksRead", "Dashboard") .Create("TasksCreate", "Dashboard") .Destroy("TasksDestroy", "Dashboard") .Update("TasksUpdate", "Dashboard") ))<div data-container-for="Attendees" class="k-edit-field">
@(Html.Kendo().MultiSelectFor(model => model.Attendees) .Name("myMultiSelectiHATEYOU") .HtmlAttributes(new { data_bind = "value:Attendees" }) .DataTextField("AttendeeName") .DataValueField("ID")
.BindTo(ViewBag.Contacts) .Value(Model.Attendees)</div>ICollection<CalendarAttendeeModel> contacts = new List<CalendarAttendeeModel>(); CalendarAttendeeModel att7 = new CalendarAttendeeModel(); att7.AttendeeName = "Georgette"; att7.ID = 4; att7.Email = "myemail@attendee7.com"; contacts.Add(att7); contacts.Add(att8); contacts.Add(att9); contacts.Add(att10); ViewBag.Contacts = contacts;public ActionResult TasksCreate([Kendo.Mvc.UI.DataSourceRequest]Kendo.Mvc.UI.DataSourceRequest request, TaskViewModel task) {}public class TaskViewModel : Kendo.Mvc.UI.ISchedulerEvent {.... public string Title { get; set; } public string Description { get; set; } public string StartTimezone { get; set; } public string EndTimezone { get; set; }.... public List<CalendarAttendeeModel> Attendees { get; set; }}<div class="kendo-tree"> @(Html.Kendo().TreeView() .Name("treeview") .DataTextField("Name") .TemplateId("treeview-template") .DataSource(dataSource => dataSource .Read(read => read.Action("DashboardTree", "Home")) ) .Events(e => e.Select("onSelect")) )</div>function onSelect(e) { var data = $('#treeview').data('kendoTreeView').dataItem(e.node); //alert("node clicked" + data.id); window.location = @Url.Action("Edit", "Employee", new { id = data.id }); }
@(Html.Kendo().Grid<EveShop.Domain.Entities.CartLine>() .Name("cartGrid") .DataSource( dataSource => dataSource .Ajax() .Read(read => read.Action("GetCartList", "Cart").Data("additionalCartListData")) .Model(model => {
model.Id(p => p.Product.ProductID);
model.Field(p => p.Product.Name); model.Field(p => p.Quantity); model.Field(p => p.Product.Price)/*.Editable(false)*/; }) ) .Columns(columns => { // this first column is really just a picture column, may be a better way to do this
// than binding it to Product.ProductID? to an empty field? didn't see how to do that.
columns.Bound(line => line.Product.ProductID).ClientTemplate("<img src='" + Url.Content("~/Images/Types/") + "#:Product.ProductID#_64.png' alt='#: Product.ProductID #' />").Title("Picture"); columns.Bound(line => line.Product.Name); columns.Bound(line => line.Quantity); columns.Bound(line => line.Product.Price); }) .Editable(editable => editable.Mode(GridEditMode.InCell)) )Here's the code:Calling view (Index.cshtml) - grid and popup window:@model IEnumerable<GMCEventRegistrationTools.Models.EventRegistrationModel> @(Html.Kendo().Grid<GMCEventRegistrationTools.Models.EventRegistrationModel>() .Name("EventRegistrationGrid") .AutoBind(false) .ToolBar(toolbar => toolbar.Create()) .Editable(editable => editable.Mode(GridEditMode.InLine)) .DataSource(dataSource => dataSource .Ajax() .Model(model => model.Id(p => p.RegistrationKey)) .Read(read => read.Action("Registrants_Read", "Home").Data("registrantsForEvent")) .Create(update => update.Action("EditingPopup_Create", "Home")) .Update(update => update.Action("EditingPopup_Update", "Home")) .Destroy(update => update.Action("EditingPopup_Destroy", "Home")) ) .Columns(cols => { cols.Bound(p => p.RegistrationKey).Hidden(true); cols.Bound(p => p.FirstName); cols.Bound(p => p.LastName); cols.Bound(p => p.CompanyName); cols.Bound(p => p.ProvideAccomodations); cols.Bound(p => p.RegistrationConfirmed); cols.Command(command => { command.Edit(); command.Destroy(); }); cols.Command(command => command.Custom("Edit Details").Click("editDetails")); } ) .ClientDetailTemplateId("registration-client-template") ) @(Html.Kendo().Window().Name("EditRegDetails") .Title("Edit Registration") .Visible(false) .Modal(true) .Draggable(true) .Width(900) ) function editDetails(e) { e.preventDefault(); var dataItem = this.dataItem($(e.currentTarget).closest("tr")); var window = $("#EditRegDetails").data("kendoWindow"); window.refresh({ url: '/Home/GetRegistrationDetails', data: { id: dataItem.RegistrationKey } }); window.center(); window.open(); }Controller/Action: public ActionResult GetRegistrationDetails(int id) { EventRegistrationModel eRegistrationModel = new EventRegistrationModel(); using (var eventTools = new WebDBEntities()) { WebEventRegistration reg = eventTools.WebEventRegistrations.Where(p => p.RegistrationKey == id).FirstOrDefault(); AdditionalInfo ai = new AdditionalInfo(); var serializer = new JavaScriptSerializer(); if (reg != null && (reg.FirstName != null && reg.FirstName != "")) { eRegistrationModel.AddressLine1 = reg.AddressLine1; eRegistrationModel.AddressLine2 = reg.AddressLine2; eRegistrationModel.City = reg.City; eRegistrationModel.CompanyName = reg.CompanyName; eRegistrationModel.EmailAddress = reg.EmailAddress; eRegistrationModel.EventDetails = serializer.Deserialize<AdditionalInfo>(reg.EventDetails); eRegistrationModel.EventName = reg.EventName; eRegistrationModel.FirstName = reg.FirstName; eRegistrationModel.JobTitle = reg.JobTitle; eRegistrationModel.LastName = reg.LastName; eRegistrationModel.MiddileInitial = reg.MiddileInitial; eRegistrationModel.PhoneNumber = reg.PhoneNumber; eRegistrationModel.PostalCode = reg.PostalCode; eRegistrationModel.ProvideAccomodations = reg.ProvideAccomodations == 0 ? true : false; eRegistrationModel.ReferrerIpAddress = reg.ReferrerIpAddress; eRegistrationModel.RegistrationConfirmed = reg.RegistrationConfirmed == 0 ? true : false; eRegistrationModel.RegistrationDate = reg.RegistrationDate; eRegistrationModel.State = reg.State; eRegistrationModel.RegistrationKey = reg.RegistrationKey; } else { return View("Error"); } } return PartialView("EditRegistrationDetails", eRegistrationModel); }Partial view with dropdown:@model GMCEventRegistrationTools.Models.EventRegistrationModel @using (Html.BeginForm("SaveRegistrationEdit", "Home", FormMethod.Post, new { id = "editregis-form" })) {most fields removed for brevity <div class="form-group"> @Html.LabelFor(model => model.State) @(Html.Kendo().DropDownListFor(model => model.State).Name("State") .HtmlAttributes(new { @class = "form-control textbox-size stateslist"}) .DataTextField("State").DataValueField("StateCode") .DataSource(source => { source.Read(read => { read.Action("GetStates", "Home"); }); }) .Value(Model.State) .Events(events => events.DataBound("setSelectedState")) ) <p class="error">@Html.ValidationMessageFor(model => model.State)</p> </div>