I currently am using buttons on my view for the menu. So along the top of my view I have
@(Html.Kendo().Button() .Name("btnAddTeacher") .HtmlAttributes(new { type = "submit", value = "AddTeacher", name = "Command", title = "Add Teacher" }) .ImageUrl(Url.Content("~/Images/add-student-35.png")) .Enable(ElementaryProgress.Classes.Security.AllowSchoolEdit))
Now I would like to replace these buttons with a menu. However I can't seem to figure out how to pass the model within my routevalues in the call to the action. So my menu item looks like:
@(Html.Kendo().Menu() .Name("menu") .Items(items => { items.Add() .Text("Teacher") .Items(c => { c.Add() .Text("Add Teacher") .ImageUrl("~/Images/add-student-35.png") .Enabled(ElementaryProgress.Classes.Security.AllowSchoolEdit) .Action("EditMySchool", "School", new { vm=this.Model, Command="AddTeacher" }); }); }))So the problem is that when the call is made to my action on my controller, the parameter vm is null. So how do I set vm equal to the model on the view so that I can pass my viewmodel back to my controller?
Thanks in advance,
Lee
Hi There,
i have the following code. I'm wanitng the icon of the button to change eveytime you click the button deppening if the panel has expaneded or not. ("pin" and "unpin").
$("#button").kendoButton({
icon: "pin",
click: function (e) {
$('.UserFavouritesPanel').animate({ width: 'toggle' }, 350);
if ($('.UserFavouritesPanel').width()>1) {
$("#button").kendoButton({
icon: "unpin"
});
} else {
$(".UserFavouritesViewBtn").kendoButton({
icon: "pin"
});
}
}
});
The issue im having is that on the fist click the icon changes to the correct one but after that when you click the button it never changes again until you refresh the screen. Any ideas on why this happens.
In my model I have a nullable foreign key (DocumentCausalID) and the foreign object (DocumentCausal).
I'm using the default "GridForeignKey" editor template to choose the value using the DropDownList.
I've edited the default "GridForeignKey" adding the OptionLabel so I can choose a null value.
When I select the null value it update the row correctly, but the next time if I select a not-null value on the same row it doesn't work: it doesn't enter into the Update function of my controller.
Can you help me? (I've attached my Model, View and the Editor Template)
Thank you
Is there a way to bind the Grid to the results from a ADO.net reader without converting each row into a POCO object? We are trying to figure a way of allowing the end-users to add data from sql joins to the grid's data. So for example:
We have 3 tables: Parents, Students, Grades. A student can have multiple Parents (1..n) and multiple Grades (1..n). The default grid view should show only Students records but should allow the end user to add Parents to the grid so that each row shows parent/student combination.

@(Html.Kendo().Grid<CMS_2013.Models.ApportionmentScenario>().Name("Grid").Events(e=>e.Edit("onEdit")).Columns(columns=>{ columns.Bound(o => o.ID).Title("ID"); columns.Bound(o => o.FormattedDateTime).Title("Created"); columns.Bound(o => o.ScenarioName).Title("Name"); columns.Bound(o => o.CreatingUser).Title("User"); columns.Command(command => { command.Edit(); command.Destroy(); }); }) .ClientDetailTemplateId("detailsTemplate") .ToolBar(commands=>commands.Create()) .Editable(editable=>editable .Mode(GridEditMode.PopUp)) .DataSource(dataSource=>dataSource .Ajax() .Model(m=>m.Id(p=>p.ID)) .Events(events => events.Error("error")) .PageSize(10) .Read(read=>read.Action("ReadScenarios","Apportionment")) .Create(create=>create.Action("InsertScenario","Apportionment")) .Update(update=>update.Action("UpdateScenario","Apportionment")) .Destroy(delete=>delete.Action("DeleteScenario","Apportionment")) ) .Pageable() .Sortable() .Filterable() ) </div><script id="detailsTemplate" type="text/kendo-tmpl"> @(Html.Kendo().Grid<CMS_2013.Models.ApportionmentData>() .Name("Data_#=ID#") .Columns(columns=> { columns.Bound(o => o.FormattedDateTime).Title("Date"); columns.Bound(o => o.Purchaser).Title("Purchaser"); columns.Bound(o => o.Apportionment); columns.Command(command => { command.Edit(); command.Destroy(); }); }) .ToolBar(commands=>commands.Create()) .Editable(editable=>editable .Mode(GridEditMode.InLine)) .DataSource(dataSource=>dataSource .Ajax() .Model(m=>m.Id(p=>p.ID)) .Events(events => events.Error("error")) .PageSize(10) .Read(read=>read.Action("ReadData","Apportionment", new { SID = "#= ID #" })) .Create(create=>create.Action("InsertData","Apportionment", new { SID = "#= ID #" })) .Update(update=>update.Action("UpdateData","Apportionment")) .Destroy(delete=>delete.Action("DeleteData","Apportionment")) ) .Pageable() .Sortable() .ToClientTemplate())@(Html.Kendo().DropDownList() .Name("Purchaser") .DataTextField("ShortName") .DataValueField("Purchaser") .OptionLabel("Choose Purchaser") .HtmlAttributes(new { style="width:180px;"}) .DataSource(source=>source .Read(read=>read.Action("GetPurchaserLookUpList2","ManualData"))))public class ApportionmentDataMD { [Required, StringLength(6)] [UIHint("PurchaserEditor")] public object Purchaser { get; set; } [Required] [UIHint("ApportionmentPercent")] public object Apportionment { get; set; } }Hi
We are using Q2 hot fix release of Telerik Kendo MVC UI Grid controls. We are using Freeze Columns and Fix height of Grid control. With this when grid is not filled with data, we see vertical line. Is there a way to get rid of that line?

Hi !!
We are using Telerik Kendo MVC UI Q2 hotfix controls. We want grid with "auto" height but in process of making "auto" height we are loosing header row information. Is there a way header scroll with grid scroll so users never loose site of column headers?
Thanks,

01.@using (Ajax.BeginForm("AddCurriculum", "Home", new { @personID = ViewBag.UserID }, new AjaxOptions02.{03. HttpMethod = "Post",04. InsertionMode = InsertionMode.Replace,05. UpdateTargetId = "PersonCurriculum",06. OnSuccess = "resetAddCurriculum",07. OnComplete = "closeAddCurriculum"08.}))09.{10. <!-- Modal -->11. <div class="modal fade" id="addCurriculum" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">12. <div class="modal-dialog" style="width: 1500px; height: 600px;">13. <div class="modal-content">14. <div class="modal-header">15. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>16. <h4 class="modal-title">Add Curriculum</h4>17. </div>18. <div class="modal-body">19. @(Html.Kendo().Grid<NCHTraining.Models.CourseSchedule>()20. .Name("courseSchedules")21. .Columns(columns =>22. {23. columns.Bound(c => c.ID)24. .ClientTemplate("<button name=\"btnAddCurriculum\" type=\"submit\" class=\"btn btn-primary\" value=\"#=ID#\">Add</button>")25. .HtmlAttributes(new { style = "text-align:center; width:100px;" })26. .Title("")27. .Sortable(false)28. .Filterable(false);29. columns.Bound(c => c.Course.Name).Filterable(true);30. columns.Bound(c => c.StartDateTime)31. .Format("{0: MM/dd/yyyy}")32. .HeaderHtmlAttributes(new { style = "text-align:center;" })33. .HtmlAttributes(new { style = "text-align:center; width:100px;" })34. .Title("Start Date")35. .Filterable(false);36. columns.Bound(c => c.StartDateTime)37. .Format("{0: hh:mm:ss tt}")38. .HeaderHtmlAttributes(new { style = "text-align:center;" })39. .HtmlAttributes(new { style = "text-align:center; width:100px;" })40. .Title("Start Time")41. .Sortable(false)42. .Filterable(false);43. columns.Bound(c => c.EndDateTime)44. .Format("{0: hh:mm:ss tt}")45. .HeaderHtmlAttributes(new { style = "text-align:center;" })46. .HtmlAttributes(new { style = "text-align:center; width:100px;" })47. .Title("End Time")48. .Sortable(false)49. .Filterable(false);50. columns.Bound(c => c.AvailableSeats)51. .HeaderHtmlAttributes(new { style = "text-align:center;" })52. .HtmlAttributes(new { style = "text-align:center; width:100px;" })53. .Title("Seats Remaining")54. .Filterable(false);55. })56. .Pageable()57. .Sortable()58. .Filterable()59. .DataSource(dataSource => dataSource60. .Ajax()61. .PageSize(10)62. .Sort(sort => sort.Add("StartDateTime").Ascending())63. .Read(read => read.Action("GetCourseSchedules", "Home", new { @personID = ViewBag.UserID }))64. )65. )66. </div>67. <div class="modal-footer">68. <button id="btnCloseAddCurriculum" type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>69. </div>70. </div>71. <!-- /.modal-content -->72. </div>73. <!-- /.modal-dialog -->74. </div>75. <!-- /.modal -->76.}77. 78.<script>79. function resetAddCurriculum(context) {80. // Get grid, set to page 1, and refresh data81. var grid = $('#courseSchedules').data('kendoGrid');82. grid.dataSource.page(1);83. grid.dataSource.read();84. }85. 86. function closeAddCurriculum(context) {87. // Close modal88. $('#btnCloseAddCurriculum').click();89. }90.</script>01.public JsonResult GetCourseSchedules([DataSourceRequest]DataSourceRequest request, int personID)02. {03. using (NCHTrainingDataContext db = new NCHTrainingDataContext())04. {05. // Get the persons curriculum06. var personCurriculumIDs = GetPersonCurriculum(personID).Select(pc => pc.CourseScheduleID);07. 08. // Get the list of available cousre schedules09. IQueryable<CourseSchedule> courseSchedules = db.CourseSchedule.Where(c => c.StartDateTime > DateTime.Now 10. && c.AvailableSeats > 0 11. && !personCurriculumIDs.Contains(c.ID))12. .Include(c => c.Course)13. .Include(c => c.Course.CourseLocation)14. .Include(c => c.Course.CourseType);15. 16. return Json(courseSchedules.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);17. }18. }