Hi,
[b]I need to show a message after the creation of record using ajax callback. The text of message is made in mvc controlller.[/b]
My controler is simply:
[code] [HttpPost]
public ActionResult User_Create([DataSourceRequest] DataSourceRequest request, UserRoleModel model)
{
if (model != null && ModelState.IsValid)
try
{
new LoginCommand().CreateUserData(model, UserSession, ref myMessage);
}
catch (Exception exception)
{
ModelState.AddModelError("", exception.Message);
}
return Json(new[] { model }.ToDataSourceResult(request, ModelState));
}
[/code]
The interface in razor looks like this
[code] @(Html.Kendo().Grid(Model).Name("UzytkownicyGrid")
.Columns(cols =>
{
cols.Bound(p => p.UserLogin).Width(150).Locked();
cols.Bound(p => p.UserName).Width(200);
// cols.Bound(p => p.Status).Width(60);
cols.Bound(p => p.Active).ClientTemplate("#=Active ? 'Tak': 'NIE'#").Width(80);
if (WlasneCommonFunc.IsAdministrator(ViewData))
{
cols.Command(command => command.Edit().Text("edytuj")).Width(120);
}
cols.Bound(p => p.MailAddress).Width(200).ClientTemplate("#= createMailLink(MailAddress) #");
cols.ForeignKey(p => p.RoleId, (IEnumerable)ViewData["roles"], "IdRoli", "Summary")
.Title("Uprawnienia").Width(150).MinScreenWidth(900);
cols.Bound(p => p.Mobilephone).Width(100).MinScreenWidth(1000).ClientTemplate("#= createPhoneLink(Mobilephone) #");
cols.Bound(p => p.Telephone).Width(100).MinScreenWidth(1100).ClientTemplate("#= createPhoneLink(Telephone) #");
cols.Bound(p => p.Funkcja).Width(100).MinScreenWidth(1200);
cols.Bound(p => p.MailDw).Width(200).MinScreenWidth(1300).ClientTemplate("#= createMailLink(MailDw) #");
})
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("UzytkownicyEdit").Window(w => w.Title("Korekta uprawnieĊ").Width(400)))
.Groupable()
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.Sortable()
.Filterable()
.ToolBar(toolbar =>
{
if (WlasneCommonFunc.IsAdministrator(ViewData))
{
toolbar.Create();
}
})
.Navigatable()
.Events(e => e.Edit("uzytkownikEdit"))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Model(model => model.Id(p => p.Identity))
.Events(events => events.Error("errorHandler"))
.Read("Uzytkownicy_Read", "Profil")
.Update("Uzytkownicy_Update", "Profil")
.Create("Uzytkownicy_Create", "Profil")
.Group(groups => groups.Add(p => p.RoleId))
))
[/code]
With displaying errors I have no problems.They are showed by the following function
[code]function errorHandler(e) {
if (e.status = "error") {
var message = "OPERACJA NIEUDANA\n";
if (e.errors) {
$.each(e.errors, function(key, value) {
if ('errors' in value) {
$.each(value.errors, function() {
message += this + "\n";
});
}
});
} else
message += e.errorThrown;
alert(message);
}
}
[/code]
What method is the best to do with it? Please help me out.
Regards,
Josef Jaskowiec
Rekord
This problem is only happening since I update to the latest version (2018.2.620) of UI for ASP.NET MVC from 2016.3.1028. Yeah, I know - I should keep up. But the project is in maintenance mode now.
I know this isn't likely much to go on, but I can't imagine how I'd pack the entire project and databases (or fakes thereof) and send it in, so I'm hoping something jumps out and is quite obvious. Any help appreciated! Even just a better idea what to look at would be good!
I have a button outside my grid for adding rows. It triggers .addRow() as follows:
$("#EntryGrid_New").click(function () { $("#EntryGrid").data('kendoGrid').addRow();});
When I hit that code, I get the following error:
Unhandled exception at line 26, column 9426 in http://localhost:23159/Scripts/kendo/2018.2.620/kendo.all.min.js
0x800a138f - JavaScript runtime error: Unable to get property '_move' of undefined or null reference occurred
The line it stops on in kendo.all.js is:
if (arguments.length === 1) { return on.call(that, arguments[0]); } var context = that, args = slice.call(arguments); if (typeof args[args.length - 1] === UNDEFINED) { args.pop(); } var callback = args[args.length - 1], events = kendo.applyEventMap(args[0], ns); if (support.mouseAndTouchPresent && events.search(/mouse|click/) > -1 && this[0] !== document.documentElement) { MouseEventNormalizer.setupMouseMute(); var selector = args.length === 2 ? null : args[1], bustClick = events.indexOf('click') > -1 && events.indexOf('touchend') > -1; on.call(this, { touchstart: MouseEventNormalizer.muteMouse, touchend: MouseEventNormalizer.unMuteMouse }, selector, { bustClick: bustClick }); } if (typeof callback === STRING) { context = that.data('handler'); callback = context[callback]; args[args.length - 1] = function (e) { callback.call(context, e); }; } args[0] = events; on.apply(that, args); return that;},
For completeness, here's the definition of the grid:
@(Html.Kendo().Grid<TimePlus.Models.ScheduleExceptionViewModel>() .Name("EntryGrid") .NoRecords("No exceptions found") .Columns(columns => { columns.Bound(model => model.ExceptionDate); columns.Bound(model => model.ExpectedHours).EditorTemplateName("TwoDecimals"); columns.Command(c => { c.Edit(); c.Destroy().Text("Remove"); }).Width(250); }) .Editable(e => e.Mode(GridEditMode.InLine)) .Events(e => e.Edit("EntryGrid_Edit")) .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("Schedule_EntryGrid_Read", "Management").Data("GetSelectedDateAndUser")) .Destroy(destroy => destroy.Action("Schedule_EntryGrid_Destroy", "Management")) .Update(update => update.Action("Schedule_EntryGrid_Update", "Management")) .Create(create => create.Action("Schedule_EntryGrid_Create", "Management")) .Events(e => e.Error("EntryGrid_Error")) .Model(model => { model.Id(c => c.ID); }) ))

Hi All,
I was working on a task to export to excel with 100k rows with 50 columns, but when I click on export to excel it was generating an empty excel .Kindly help me in achieving the task.
Note: This is working well for 6000 rows.
Thanks & Regards,
Sampath
I'm trying to make the text label not crowded in a lot of data and I can not successful.
https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/events/remove
I am using the above event to refresh other grids on the page when a specific grid has a row deleted.
My test code is as follows:
@(Html.Kendo().Grid<ViewModel> () .Name("kGrid") .Events(e => { e.Remove("alert('hello')"); })
The rest of the code is omitted as it is not relevant.
The "hello" is triggering on page load, and not triggered at all when a row is confirmed removed. Am I missing something?
Recently I've been working with telerik devcraft for the last couple of weeks, I'm interested in using the grid controller to display data, I've reached the point where I'm working with CRUD operations and I need to led the user make delete, create and edit operations of the displayed rows my client really doesn't like the way the controller displays the edit and delete buttons next to the rows, he would like to be available to invoke the edit and delete operations via external html buttons on the bottom of the page
Hi there guys and gals, I have a grid and i am try to hide and show columns based on the selected month from a drop-down list. If selected month is January, then show the JComment column if it is February, then hide the JComment column and show the FComment column. The hide and show functionality works but unfortunately, it breaks the grid appearance, the all columns are compressed in width and blank space on the right of the grid appears. i have tried calling the resize grid function, i have tried fixing this through css, but to no avail. How do i fix this?
Here is the Grid logic
@(Html.Kendo().Grid<P2I_UI.Models.ViewM.MinistryImpactVM>() .Name("peopleMinistryImpact") .Columns(columns => { columns.Bound(c => c.StatisticName).Title("StatisticName ").Width(35); columns.Bound(c => c.MinistryGroup).Title("Ministry <br/> Group").Width(25); columns.Bound(c => c.AgeGroup).Title("Age").Width(25); columns.Bound(c => c.AnnualGoal).Title("Annual <br/> Goal").Width(30).ClientTemplate("#=(AnnualGoal == null) ? ' ' : kendo.toString(AnnualGoal,',0')#"); columns.Bound(c => c.October).Title("Oct.").Width(30).ClientTemplate("#=(October == null) ? ' ' : kendo.toString(October,',0')#"); columns.Bound(c => c.November).Title("Nov.").Width(30).ClientTemplate("#=(November == null) ? ' ' : kendo.toString(November,',0')#"); columns.Bound(c => c.December).Title("Dec.").Width(30).ClientTemplate("#=(December == null) ? ' ' : kendo.toString(December,',0')#"); columns.Bound(c => c.January).Title("Jan.").Width(30).ClientTemplate("#=(January == null) ? ' ' : kendo.toString(January,',0')#"); columns.Bound(c => c.JanuaryComment).Title("JComment.").Width(50).Hidden(); columns.Bound(c => c.February).Title("Feb.").Width(30).ClientTemplate("#=(February == null) ? ' ' : kendo.toString(February,',0')#"); columns.Bound(c => c.FebruaryComment).Title("FComment.").Width(50).Hidden(); columns.Bound(c => c.March).Title("Mar.").Width(30).ClientTemplate("#=(March == null) ? ' ' : kendo.toString(March,',0')#"); columns.Bound(c => c.MarchComment).Title("MComment.").Width(50).Hidden(); columns.Bound(c => c.April).Title("Apr.").Width(30).ClientTemplate("#=(April == null) ? ' ' : kendo.toString(April,',0')#"); columns.Bound(c => c.May).Title("May.").Width(30).ClientTemplate("#=(May == null) ? ' ' : kendo.toString(May,',0')#"); columns.Bound(c => c.June).Title("Jun.").Width(30).ClientTemplate("#=(June == null) ? ' ' : kendo.toString(June,',0')#"); columns.Bound(c => c.July).Title("Jul.").Width(30).ClientTemplate("#=(July == null) ? ' ' : kendo.toString(July,',0')#"); columns.Bound(c => c.August).Title("Aug.").Width(30).ClientTemplate("#=(August == null) ? ' ' : kendo.toString(August,',0')#"); columns.Bound(c => c.September).Title("Sep.").Width(30).ClientTemplate("#=(September == null) ? ' ' : kendo.toString(September,',0')#"); columns.Bound(c => c.FiscalYearToDate).Title("FYTD.").Width(30).ClientTemplate("#=(FiscalYearToDate == null) ? ' ' : kendo.toString(FiscalYearToDate,',0')#"); columns.Bound(c => c.PercentageOfPlan).Title("% of <br/> Plan.").Width(30).ClientTemplate("#=(PercentageOfPlan == null) ? ' ' : kendo.toString(PercentageOfPlan,'p')#"); }) .ToolBar(toolbar => { toolbar.Save(); }) .Editable(editable => editable.Mode(GridEditMode.InCell)) .Events(events => { events.Edit("onEditMinistryImpact"); }) .AutoBind(false) .DataSource(dataSource => dataSource .Ajax() .Sort(s => { s.Add(p => p.SortOrder).Ascending(); s.Add(p => p.MinistryGroupCategoryID).Ascending(); s.Add(p => p.AgeCategoryID).Ascending(); }) .ServerOperation(false) .Batch(true) .Model(model => { model.Id(p => p.MinistryImpactID); model.Field(p => p.StatisticName).Editable(false); model.Field(p => p.MinistryGroup).Editable(false); model.Field(p => p.AgeGroup).Editable(false); model.Field(p => p.FiscalYearToDate).Editable(false); model.Field(p => p.PercentageOfPlan).Editable(false); }) .Read(read => read.Action("MinistryImpact_Read", "MinistryImpact").Data("additionalData")) .Update(update => update.Action("MinistryImpact_Update", "MinistryImpact")) ))
Js Logic
function onMonthChange(e){ var selectedMonthIndex = this.value(); var peopleMinistry = $("#peopleMinistryImpact").data("kendoGrid"); if (parseInt(selectedMonthIndex) === parseInt(0)) { peopleMinistry.showColumn("JanuaryComment"); peopleMinistry.hideColumn("FebruaryComment"); peopleMinistry.hideColumn("MarchComment"); } else if (parseInt(selectedMonthIndex) === parseInt(1)) { peopleMinistry.hideColumn("JanuaryComment"); peopleMinistry.showColumn("FebruaryComment"); peopleMinistry.hideColumn("MarchComment"); } else if (parseInt(selectedMonthIndex) === parseInt(2)) { peopleMinistry.hideColumn("JanuaryComment"); peopleMinistry.hideColumn("FebruaryComment"); peopleMinistry.showColumn("MarchComment"); } peopleMinistry.resize(); // force the layout readjustment without setting a new height peopleMinistry.resize(true)}CSS
<style> #peopleMinistryImpact.k-grid-header { padding: 0 !important; } #peopleMinistryImpact.k-grid-content { overflow-y: visible; } #peopleMinistryImpact > .k-grid-header > div > table, #peopleMinistryImpact > .k-grid-content > table { width: 100% !important; } #peopleMinistryImpact { min-width: 1250px; }</style>
Thanks for the help
Hello,
I have an application, in wich there is a combobox above a grid. If i choose a company in the Combobox, then the people of the company are shown in the grid.
I have now the problem with the edit button in the grid. If I change the company and after this click on the edit button, the edit popup do not open. Instead the grid fires the Read-Action. When i click a second time on the edit button, the edit popup is opening.
I attached a demo project with this problem. I remvoed the Kendo Css-files and Scripts to get a small zip-File. Just Reinstall the "Telerik.UI.for.AspNet.Mvc5" package. I use the version 2018.1.117
Thank you for your help.
Ralf
Hello,
Could some one help me the sorting issue? Records cannot be sorted by clicking on a column's header after I applying group on the grid. I am working on MVC project.
Thanks in advance.