or
@model SkyBooks.Web.Models.EmailInfo@{ ViewBag.Title = "title";}<div style="float:right"> <span id="btnCreateRole" class="k-button">Create New User Role</span></div><div style='clear: both'></div><h2>Kendo UI Window with Ajax Form test</h2>@* Plain Ajax Form Without Kendo Window *@<div id="personalDetail">This is where the feedback goes</div>@using (Ajax.BeginForm("AjaxCreate", "KendoWindowAjax", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "personalDetail", LoadingElementId = "divLoading" })){ @Html.ValidationSummary(true) <fieldset> <legend>Ajax.BeginForm Demo</legend> <div class="editor-label"> @Html.LabelFor(model => model.Name) </div> <div class="editor-field"> @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </div> <div class="editor-label"> @Html.LabelFor(model => model.EmailAddress) </div> <div class="editor-field"> @Html.TextBoxFor(model => model.EmailAddress) @Html.ValidationMessageFor(model => model.EmailAddress) </div> <input type="submit" value="Submit" /> <div id="divLoading" style="display:none"> @* loader image created at: http://www.ajaxload.info/ *@ <img src="@Url.Content("~/Content/images/ajax-loader.gif")" /> </div> </fieldset>}@* And this is an attempt at an ajax form inside a Kendo Window *@ @(Html.Kendo().Window() .Name("window") .Title("New User Role") .Content(@<text> @using (Ajax.BeginForm("AjaxCreate", "KendoWindowAjax", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "personalDetail", LoadingElementId = "divLoading2" })) { @Html.ValidationSummary(true) <fieldset> <legend>Ajax.BeginForm Demo</legend> <div class="editor-label"> @Html.LabelFor(model => model.Name) </div> <div class="editor-field"> @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </div> <div class="editor-label"> @Html.LabelFor(model => model.EmailAddress) </div> <div class="editor-field"> @Html.TextBoxFor(model => model.EmailAddress) @Html.ValidationMessageFor(model => model.EmailAddress) </div> <input type="submit" value="Submit" /> <div id="divLoading2" style="display:none"> @* loader image created at: http://www.ajaxload.info/ *@ <img src="@Url.Content("~/Content/images/ajax-loader.gif")" /> </div> </fieldset> } </text>) .Draggable() .Events(ev => ev.Close("onClose")) .Visible(true) .Modal(true) )@section Scripts { @Scripts.Render("~/bundles/jqueryval")}<script> function onClose() { $("#btnCreateRole").removeClass("k-state-disabled"); } $(document).ready(function () { $("#btnCreateRole").bind("click", function () { if (!$("#btnCreateRole").hasClass("k-state-disabled")) { $("#window").data("kendoWindow").center().open(); $("#btnCreateRole").addClass("k-state-disabled"); } }); });</script><section id="main"> <div style="float:right"> <span id="btnCreateRole" class="k-button">Create New User Role</span></div><div style='clear: both'></div><h2>Kendo UI Window with Ajax Form test</h2><div id="personalDetail">This is where the feedback goes</div><form action="/KendoWindowAjax/AjaxCreate" data-ajax="true" data-ajax-loading="#divLoading" data-ajax-method="Post" data-ajax-mode="replace" data-ajax-update="#personalDetail" id="form0" method="post"> <fieldset> <legend>Ajax.BeginForm Demo</legend> <div class="editor-label"> <label for="Name">Name</label> </div> <div class="editor-field"> <input class="text-box single-line" data-val="true" data-val-required="The Name field is required." id="Name" name="Name" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span> </div> <div class="editor-label"> <label for="EmailAddress">EmailAddress</label> </div> <div class="editor-field"> <input data-val="true" data-val-length="The EmailAddress must be from 6 to 20 characters long." data-val-length-max="20" data-val-length-min="6" data-val-required="The EmailAddress field is required." id="EmailAddress" name="EmailAddress" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="EmailAddress" data-valmsg-replace="true"></span> </div> <input type="submit" value="Submit" /> <div id="divLoading" style="display:none"> <img src="/Content/images/ajax-loader.gif" /> </div> </fieldset></form> <form action="/KendoWindowAjax/AjaxCreate" data-ajax="true" data-ajax-loading="#divLoading2" data-ajax-method="Post" data-ajax-mode="replace" data-ajax-update="#personalDetail" id="form1" method="post"></form><div id="window"> <fieldset> <legend>Ajax.BeginForm Demo</legend> <div class="editor-label"><label for="Name">Name</label> </div> <div class="editor-field"><input class="text-box single-line" data-val="true" data-val-required="The Name field is required." id="Name" name="Name" type="text" value="" /><span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span> </div> <div class="editor-label"><label for="EmailAddress">EmailAddress</label> </div> <div class="editor-field"><input data-val="true" data-val-length="The EmailAddress must be from 6 to 20 characters long." data-val-length-max="20" data-val-length-min="6" data-val-required="The EmailAddress field is required." id="EmailAddress" name="EmailAddress" type="text" value="" /><span class="field-validation-valid" data-valmsg-for="EmailAddress" data-valmsg-replace="true"></span> </div> <input type="submit" value="Submit" /> <div id="divLoading2" style="display:none"> <img src="/Content/images/ajax-loader.gif" /> </div> </fieldset> </div><script> jQuery(function(){jQuery("#window").kendoWindow({"close":onClose,"modal":true,"iframe":false,"draggable":true,"title":"New User Role","resizable":false,"content":null,"actions":["Close"]});});</script><script> function onClose() { $("#btnCreateRole").removeClass("k-state-disabled"); } $(document).ready(function () { $("#btnCreateRole").bind("click", function () { if (!$("#btnCreateRole").hasClass("k-state-disabled")) { $("#window").data("kendoWindow").center().open(); $("#btnCreateRole").addClass("k-state-disabled"); } }); });</script> </section>// Create an observable view model object.var person = kendo.observable({ firstName: "John", lastName: "DeVight", // Create a dependent method (calculated field). fullName: function() { // The "get" function must be used so that changes to any // dependencies will be reflected in the dependent method. return this.get("firstName") + " " + this.get("lastName"); }});// Bind the view model to the personFields element.kendo.bind($('#personFields'), person);// This produces the function() without handing off the value to the JS variable
var fullName = person.get("fullName");// Create an observable view model object.var person = kendo.observable({ firstName: "John", lastName: "DeVight", // Create a dependent method (calculated field). fullName: function() { // The "get" function must be used so that changes to any // dependencies will be reflected in the dependent method. return person.get("firstName") + " " + person.get("lastName"); }});// Bind the view model to the personFields element.kendo.bind($('#personFields'), person);var fullName = person.get("fullName");var ViewModel;// Create an observable view model object.var person = function() { var self = this; self.firstName = ko.observable("John"); self.lastName = ko.observable("DeVight"); // Create a dependent method (calculated field). self.fullName = ko.computed(function () { return self.firstName() + " " + self.lastName(); });};// Match to the global JS objectViewModel = new person();// Bind the view model to the personFields element.ko.applyBindings(ViewModel, document.getElementById("result"));var fullName = ViewModel.fullName();$("#result").html(fullName);{ field: "Role", title: "ruolo", template : "<span>${Role.Name}</span>", filterable: { ui: RoleFilter, extra: false }, editor: function (container, object) { SetRoleSelect(container, object); } },fields: { prop1 : {type:"string"} Role: { Id: { type: "int", editable: false }, Name: { type: "string", editable: true, validation: { required: true } }, Descrizione: { type: "string", editable: true, validation: { required: false } }, Visible: { type: "boolean", editable: true }, Rango: { type: "number", editable: true, validation: { required: true, min: 0 } }}RoleFilter: function (element) { element.kendoDropDownList({ dataTextField: "Name", dataValueField: "Id", dataSource: { transport: { read: { url: "my url returning a list of Role object", cache: true } } }, optionLabel: "Select a Role" }); }@(Html.Kendo().Window() .Name("window") .Title("Role") .Content("loading...") .LoadContentFrom("Create", "RolesPermissions", Model.Role) .Modal(true) .Width(550) .Height(300) .Visible(false) )
$(document).ready(function () { var wnd = $("#window").data("kendoWindow"); wnd.bind("refresh", function (e) { var win = this; $("#close").click(function() { win.close(); }); }); $("#open").click(function (e) { wnd.center(); wnd.open(); }); });
[HttpPost] public ActionResult Create(RoleModel model) { if (ModelState.IsValid) { RoleDto role = new RoleDto { Name = model.Name, Description = model.Description }; var roleAdded = _rolePermissionsRepository.AddRole(role); if (roleAdded != null) { //CLOSE KENDOUI WINDOW } else { //PRINT ERROR MSG TO KENDOUI WINDOW } } return View(); }
<link href="@Url.Content("~/Content/kendo.compatibility.css")" rel="stylesheet" type="text/css" /><link href="@Url.Content("~/Content/kendo/2013.2.918/kendo.dataviz.default.min.css")" rel="stylesheet" type="text/css" /><link href="@Url.Content("~/Content/kendo/2013.2.918/kendo.common.min.css")" rel="stylesheet" type="text/css" /><link href="@Url.Content("~/Content/kendo/2013.2.918/kendo.dataviz.min.css")" rel="stylesheet" type="text/css" />
@*<link href="@Url.Content("~/Content/kendo/2013.2.918/kendo.default.min.css")" rel="stylesheet" type="text/css" />*@
<link href="@Url.Content("~/Content/kendo/2013.2.918/kendo.dataviz.default.min.css")" rel="stylesheet" type="text/css" /><link href="@Url.Content("~/Content/kendo/2013.2.918/WFHCustom/KendoCustomTheme.css") rel="stylesheet" type="text/css" /><script src="@Url.Content("~/Scripts/kendo/2013.2.918/kendo.all.min.js")"></script><script src="@Url.Content("~/Scripts/kendo/2013.2.918/kendo.aspnetmvc.min.js")"></script><script src="@Url.Content("~/Scripts/kendo.modernizr.custom.js")"></script>