or
@(Html.Kendo().MultiSelectFor(model=>model.RoleList)
.Name("RoleList")
.HtmlAttributes(new { style = "width: 310px;" })
.Placeholder("Select roles...")
.DataTextField("RoleName")
.DataValueField("RoleId")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetClientRolesList", "Client", new { id = ViewContext.RouteData.Values["id"] });
read.Type(HttpVerbs.Post);
})
.ServerFiltering(false);
})
)
[DisplayName("Roles")]
public List<
RoleViewModel
> RoleList
{
get;
set;
}
namespace MyApp.Models
{
public class RoleViewModel
{
public int RoleId
{
get;
set;
}
public string RoleName
{
get;
set;
}
}
}
public ActionResult GetClientRolesList(int id, [DataSourceRequest] DataSourceRequest request)
{
using (var db = new MyAppEntities())
{
var rolesList = (from role in db.webpages_Roles
select new RoleViewModel()
{
RoleId = role.RoleId,
RoleName = role.RoleName
});
return Json(rolesList.ToList());
}
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ClientUser_Update(int id, [DataSourceRequest] DataSourceRequest request, ClientUserViewModel clientUser)
{
if (clientUser != null && ModelState.IsValid)
{
try
{
ClientUserRepository.Update(id,clientUser);
}
catch (Exception ex)
{
ModelState.AddModelError("ClientName", ex.Message);
}
}
return Json(new[] { clientUser }.ToDataSourceResult(request, ModelState));
}
@(Html.Kendo().Grid<
MyApp.Models.ClientUserViewModel
>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(u => u.UserId).Hidden();
columns.Bound(u => u.FirstName).Width(100);
columns.Bound(u => u.LastName).Width(100);
columns.Bound(u => u.UserName).Width(100);
columns.Bound(u => u.RoleList).Hidden();
columns.Bound(u => u.zTimestamp).Hidden();
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(160);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("ClientUser"))
.Pageable()
.Filterable()
.Sortable()
.Scrollable()
.HtmlAttributes(new { style = "height:580px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Batch(false)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(u => u.UserId))
.Create(update => update.Action("ClientUser_Create", "Client", new { id = ViewContext.RouteData.Values["id"] }))
.Read(read => read.Action("ClientUser_Read", "Client", new { id = ViewContext.RouteData.Values["id"] }))
.Update(update => update.Action("ClientUser_Update", "Client", new { id = ViewContext.RouteData.Values["id"] }))
.Destroy(update => update.Action("ClientUser_Destroy", "Client", new { id = ViewContext.RouteData.Values["id"] }))
)
)
@(Html.Kendo().AutoCompleteFor(model => model.CountryCode)
.Name("acCountry")
.DataTextField("ISO")
.DataSource(ds =>
{
ds.Read(read =>
{
read.Action("GetCountriesForAutoComplete", "Country")
.Data("onAdditionalData");
})
.ServerFiltering(true);
})
)
<
script
>
$.validator.unobtrusive.parse("#CreateRegionForm");
//$('#CreateRegionForm').kendoValidator();
function onAdditionalData() {
return {
text: $("#acCountry").val()
};
}
</
script
>
public
ActionResult GetCountriesForAutoComplete(
string
text)
{
text = text.ToUpper();
var result = FwdManager.Country.GetAll()
.Where(p => p.ISO.Contains(text) || p.NameEsp.Contains(text))
.Select(s =>
new
DtoCountry()
{
Id = s.Id,
ISO = s.ISO,
NameEsp = s.NameEsp,
NameEng = s.NameEng,
Observations = s.Observations,
PAIS_UNION_EUROPEA = s.PAIS_UNION_EUROPEA,
Active = s.Active
});
return
Json(result, JsonRequestBehavior.AllowGet);
}
[HttpPost]
public
JsonResult Create(Region region)
{
//region.CountryCode is null!!!!
JsonResult jsonOutput =
null
;
if
(ModelState.IsValid)
{
try
{
ConvertToUpperCase(region.GetType(), region);
CheckKeyFields(region);
FwdManager.Region.Insert(region);
FwdManager.Commit();
jsonOutput = Json(
new
{ success =
true
});
}
catch
(Exception ex)
{
jsonOutput = ErrorJson(ex);
}
}
else
{
jsonOutput = ErrorJson(ModelState);
}
return
jsonOutput;
}
[AllowCrossSite]
public
ActionResult FallsDataSource([DataSourceRequest] DataSourceRequest request,
string
casenote)
{
IList<FallsAssessEventDTO> events = bedmanEvents.GetEvents(casenote, BedmanEventType.FallsRiskAssessment).Cast<FallsAssessEventDTO>().ToList();
var model = events.Select(e => (FallsAssessment)e).ToList();
AddImages(model);
var queryable = model.AsQueryable();
return
Json(model.ToDataSourceResult(request));
}
datasource.Ajax().Read(read => read.Url("http://" + Request.Url.Host).Action("FallsDataSource", "FallsAssessment", new { Casenote = ViewBag.Casenote }))).Pageable()
I'm experimenting with the scheduler to display some log entries from one of our applications (events with a start / end date - and although I can display the events, the time bands aren't lining up with the events.
The upshot of this is that events happening at 11pm, are showing up in the 8pm band, due to the slippage.
I've attached a screenshot.
The definition is:-
@{
DateTime startDate = ViewBag.InitialDate;
DateTime startTime = ViewBag.StartTime;
@(Html.Kendo().Scheduler<
LogBuddy3.Models.SchedulerEvt
>()
.Name("scheduler")
.Date(startDate)
.StartTime(startTime)
.Height(600)
.Views(views=>
{
views.DayView();
views.WeekView();
views.AgendaView(av=>av.Selected(true));
})
.Editable(false)
.BindTo(Model)
)
}
Thanks