From f3a3fa395548237866154bce38e45bad34d85fc8 Mon Sep 17 00:00:00 2001 From: alestoya Date: Fri, 28 Jul 2023 11:43:40 +0300 Subject: [PATCH] chore(demos): add wizard dynamic step example --- .../Wizard/DynamicStepController.cs | 27 ++++++++ .../Models/UserDetailsModel.cs | 42 ++++++++++++ .../Views/Shared/_DynamicStepPartial.cshtml | 43 ++++++++++++ .../Views/Wizard/DynamicStep.cshtml | 65 +++++++++++++++++++ 4 files changed, 177 insertions(+) create mode 100644 Telerik.Examples.Mvc/Telerik.Examples.Mvc/Controllers/Wizard/DynamicStepController.cs create mode 100644 Telerik.Examples.Mvc/Telerik.Examples.Mvc/Models/UserDetailsModel.cs create mode 100644 Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Shared/_DynamicStepPartial.cshtml create mode 100644 Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Wizard/DynamicStep.cshtml diff --git a/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Controllers/Wizard/DynamicStepController.cs b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Controllers/Wizard/DynamicStepController.cs new file mode 100644 index 0000000..f0355bc --- /dev/null +++ b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Controllers/Wizard/DynamicStepController.cs @@ -0,0 +1,27 @@ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Telerik.Examples.Mvc.Models; + +namespace Telerik.Examples.Mvc.Controllers.Wizard +{ + public class DynamicStepController : Controller + { + public IActionResult DynamicStep() + { + return View("/Views/Wizard/DynamicStep.cshtml"); + } + + [HttpPost] + public IActionResult DynamicStep(UserDetailsModel model) + { + return Json(model); + } + public IActionResult Load_Step(string type) + { + return PartialView("_DynamicStepPartial", type); + } + } +} diff --git a/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Models/UserDetailsModel.cs b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Models/UserDetailsModel.cs new file mode 100644 index 0000000..d2608a6 --- /dev/null +++ b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Models/UserDetailsModel.cs @@ -0,0 +1,42 @@ +using System.ComponentModel.DataAnnotations; + +namespace Telerik.Examples.Mvc.Models +{ + public class UserDetailsModel + { + public string Type + { + get; + set; + } + public AccountDetailsModel AccountDetails + { + get; + set; + } + + public CompanyDetailsModel CompanyDetails + { + get; + set; + } + } + public class AccountDetailsModel + { + [Required] + public string Username { get; set; } + + [Required] + public string Email { get; set; } + } + + public class CompanyDetailsModel + { + [Required] + public string Country { get; set; } + + [Required] + public string CompanyName { get; set; } + + } +} diff --git a/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Shared/_DynamicStepPartial.cshtml b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Shared/_DynamicStepPartial.cshtml new file mode 100644 index 0000000..d6d0650 --- /dev/null +++ b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Shared/_DynamicStepPartial.cshtml @@ -0,0 +1,43 @@ +@{ + Layout = ""; +} + +@model string +@{ + if (Model.Equals("Individual")) + { +
+
+ + + + +
+
+ + + + +
+ +
+ + } + else + { +
+
+ + + + +
+
+ + + + +
+
+ } +} diff --git a/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Wizard/DynamicStep.cshtml b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Wizard/DynamicStep.cshtml new file mode 100644 index 0000000..bc1dcf6 --- /dev/null +++ b/Telerik.Examples.Mvc/Telerik.Examples.Mvc/Views/Wizard/DynamicStep.cshtml @@ -0,0 +1,65 @@ +@{ + ViewData["Title"] = "WizardDynamicStep"; +} + +

@ViewData["Title"]

+ +@(Html.Kendo().Wizard() + .Name("wizard") + .Tag("form") + .HtmlAttributes(new { @novalidate = "", action = Url.Action("DynamicStep", "DynamicStep"), method = "POST" }) + .Steps(s => + { + s.Add() + .Title("First") + .Form(f => f + .Validatable(v => + { + v.ValidateOnBlur(true); + v.ValidationSummary(vs => vs.Enable(false)); + }) + .Items(items => + { + items.Add() + .Field("Type") + .Label(l => l.Text("Is Individual:")) + .Editor(e => e.RadioGroup() + .Items(items => + { + items.Add().Label("Individual").Value("Individual"); + items.Add().Label("Company").Value("Company"); + }) + ); + }) + ) + .Buttons(b => + { + b.Next(); + }); + + s.Add().Title("Second").Content("
").Buttons(b => b.Done()); + + }) + .Events(e => e.Activate("onActivate")) + + +) + + \ No newline at end of file