or
@(Html.Kendo().Menu().Name("Menu") .Items(items => { items.Add().Text("Products") .Items(children => { children.Add().Text("Furniture"); }); items.Add().Text("Stores") .Content(@<text> @(Html.Kendo().PanelBar().Name("panelbar").ExpandMode(PanelBarExpandMode.Multiple) .HtmlAttributes( new { style = "width: 300px" }) .Items(panelbar => { panelbar.Add().Text("My TeamMates") .Items(it => { it.Add().Text("First"); it.Add().Text("Second"); }); }) ) </text>); }))
<%@ Page Title="" Language="C#" MasterPageFile="~/mobile.master" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="index" %><asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <div data-role="view" data-init="mobileListViewPressToLoadMore" data-title="Patient List"> <header data-role="header"> <div data-role="navbar"> <span data-role="view-title"></span> <a data-align="right" data-role="button" class="nav-button" href="#index">Index</a> </div> </header> <ul id="load-more"></ul></div><script> function mobileListViewPressToLoadMore() { var dataSource = new kendo.data.DataSource({ pageSize: 20, serverPaging: true, transport: { read: { url: "http://myservices/rest/plan.svc/Patient" // the remove service url }, parameterMap: function(options) { var parameters = { q: "javascript", //additional parameters sent to the remote service rpp: options.pageSize, page: options.page //next page }; return parameters; } }, schema: { // describe the result format data: "" // the data which the data source will be bound to is in the "results" field } }); $("#load-more").kendoMobileListView({ dataSource: dataSource, template: $("#load-more-template").text(), loadMore: true }); }</script><script id="load-more-template" type="text/x-kendo-template"> <div class="tweet"> <div class="metadata"> <a class="sublink" target="_blank" href="http://#= id #" rel="nofollow">#= first_name + ' ' + last_name #</a> | <a class="sublink" href="http://#= mrn #" rel="nofollow">#= pat_seqno #</a> </div> </div></script><style scoped> .tweet { font-size: .8em; line-height: 1.4em; } .pullImage { width: 64px; height: 64px; border-radius: 3px; float: left; margin-right: 10px; } .sublink { font-size: .9em; font-weight: normal; display: inline-block; padding: 3px 3px 0 0; text-decoration: none; opacity: .8; }</style></asp:Content>columns.Bound(Function(p) p.DeviceRuleID)columns.Bound(Function(p) p.RulePriority)@* Kendo Grid control*@@(Html.Kendo().Grid(Of Models.Device) _ .Name("Devices") _ .HtmlAttributes(New With {.style = "width: 100%", .align = "center"}) _ .Columns(Function(columns) columns.Bound(Function(p) p.deviceTag).Groupable(True).Width(200) columns.Bound(Function(p) p.DeviceEnabled).Groupable(True).Width(200) columns.Bound(Function(p) p.DeviceDescription).Groupable(True).Width(200) columns.Bound(Function(p) p.ViewSuffix).Groupable(True).Width(200) columns.Command(Function(command) command.Edit() End Function).Width(200) End Function) _ .ClientDetailTemplateId("DeviceRuleTemplate") _ .Editable(Function(editable) editable.Mode(GridEditMode.InLine)) _ .ToolBar(Function(toolbar) toolbar.Create()) _ .DataSource(Function(dataSource) dataSource.Ajax.Events(Function(events) events.Error("error_handler")) dataSource.Ajax.Model(Sub(model) model.Id(Function(p) p.ViewSuffix) model.Field(Function(p) p.ViewSuffix).Editable(False) End Sub) dataSource.Ajax.Create(Function(create) create.Action("Device_Create", "Device")) dataSource.Ajax.Read(Function(read) read.Action("Device_Read", "Device")) dataSource.Ajax.Update(Function(update) update.Action("Device_Update", "Device")) dataSource.Ajax.Destroy(Function(delete) delete.Action("Device_Delete", "Device")) End Function) ) <script id="DeviceRuleTemplate" type="text/kendo-tmpl"> @(Html.Kendo().Grid(Of Models.DeviceRule) _ .Name("Rules_#=deviceTag#") _ .Pageable() _ .Columns(Function(columns) columns.Bound(Function(p) p.DeviceRuleID) columns.Bound(Function(p) p.ViewSuffix) columns.Bound(Function(p) p.RuleName) columns.Bound(Function(p) p.RulePriority) columns.Bound(Function(p) p.Active) columns.Command(Function(command) command.Edit() End Function).Width(200) End Function) _ .DataSource(Function(dataSource) dataSource.Ajax.Read(Function(read) read.Action("DeviceRules_GetForDevice", "Device", New With {.ViewSuffix = "#=ViewSuffix#"})) dataSource.Ajax.Model(Sub(model) model.Id(Function(p) p.DeviceRuleID) End Sub) dataSource.Ajax.Create(Function(create) create.Action("DeviceRule_Create", "Device")) dataSource.Ajax.Update(Function(update) update.Action("DeviceRule_Update", "Device")) dataSource.Ajax.Destroy(Function(delete) delete.Action("DeviceRule_Delete", "Device")) End Function) _ .ToClientTemplate())</script>@*Script for the error handler of the grid*@<script type="text/javascript"> function error_handler(e) { if (e.errors) { var message = "Errors:\n"; $.each(e.errors, function (key, value) { if ('errors' in value) { $.each(value.errors, function () { message += this + "\n"; }); } }); alert(message); } } </script>Uncaught Error: Invalid template:' <div class="k-widget k-grid" id="Rules_#=deviceTag#"><table cellspacing="0"><colgroup><col /><col /><col /><col /><col /><col style="width:200px" /></colgroup><thead class="k-grid-header"><tr><th class="k-header" data-field="DeviceRuleID" data-title="Device Rule ID" scope="col"><span class="k-link">Device Rule ID</span></th><th class="k-header" data-field="ViewSuffix" data-title="View Suffix" scope="col"><span class="k-link">View Suffix</span></th><th class="k-header" data-field="RuleName" data-title="Rule Name" scope="col"><span class="k-link">Rule Name</span></th><th class="k-header" data-field="RulePriority" data-title="Rule Priority" scope="col"><span class="k-link">Rule Priority</span></th><th class="k-header" data-field="Active" data-title="Active" scope="col"><span class="k-link">Active</span></th><th class="k-header" scope="col"><span class="k-link"> </span></th></tr></thead><tbody><tr class="t-no-data"><td colspan="6"></td></tr></tbody></table><div class="k-pager-wrap k-grid-pager"><a class="k-link k-state-disabled" data-page="1" href="\#" title="Go to the first page"><span class="k-icon k-i-seek-w">seek-w</span></a><a class="k-link k-state-disabled" data-page="0" href="\#" title="Go to the previous page"><span class="k-icon k-i-arrow-w">arrow-w</span></a><ul class="k-pager-numbers k-reset"><li><span class="k-state-selected" data-page="1">1</span></li></ul><a class="k-link k-state-disabled" data-page="2" href="\#" title="Go to the next page"><span class="k-icon k-i-arrow-e">arrow-e</span></a><a class="k-link k-state-disabled" data-page="1" href="\#" title="Go to the last page"><span class="k-icon k-i-seek-e">seek-e</span></a><span class="k-pager-info k-label">No items to display</span></div></div><script> jQuery(function(){jQuery("\#Rules_#=deviceTag#").kendoGrid({"columns":[{"title":"Device Rule ID","field":"DeviceRuleID","filterable":{},"encoded":true,"editor":"\u003cdiv class=\"t-widget t-numerictextbox\"\u003e\u003cinput class=\"t-input\" data-val=\"true\" data-val-number=\"The field DeviceRuleID must be a number.\" data-val-required=\"The DeviceRuleID field is required.\" id=\"DeviceRuleID\" name=\"DeviceRuleID\" style=\"width:50%\" type=\"text\" value=\"0\" /\u003e\u003ca class=\"t-link t-icon t-arrow-up\" href=\"#\" tabindex=\"-1\" title=\"Increase value\"\u003eIncrement\u003c/a\u003e\u003ca class=\"t-link t-icon t-arrow-down\" href=\"#\" tabindex=\"-1\" title=\"Decrease value\"\u003eDecrement\u003c/a\u003e\u003c/div\u003e\u003cscript type=\"text/javascript\"\u003e\tjQuery(\u0027#DeviceRuleID\u0027).tTextBox({val:0, step:1, minValue:-2147483648, maxValue:2147483647, digits:0, groupSize:3, negative:1, text:\u0027Enter value\u0027, type:\u0027numeric\u0027});\u003c\\/script\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"DeviceRuleID\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"title":"View Suffix","field":"ViewSuffix","filterable":{},"encoded":true,"editor":"\u003cinput class=\"text-box single-line\" id=\"ViewSuffix\" name=\"ViewSuffix\" type=\"text\" value=\"\" /\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"ViewSuffix\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"title":"Rule Name","field":"RuleName","filterable":{},"encoded":true,"editor":"\u003cinput class=\"text-box single-line\" id=\"RuleName\" name=\"RuleName\" type=\"text\" value=\"\" /\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"RuleName\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"title":"Rule Priority","field":"RulePriority","filterable":{},"encoded":true,"editor":"\u003cdiv class=\"t-widget t-numerictextbox\"\u003e\u003cinput class=\"t-input\" data-val=\"true\" data-val-number=\"The field RulePriority must be a number.\" data-val-required=\"The RulePriority field is required.\" id=\"RulePriority\" name=\"RulePriority\" style=\"width:50%\" type=\"text\" value=\"0\" /\u003e\u003ca class=\"t-link t-icon t-arrow-up\" href=\"#\" tabindex=\"-1\" title=\"Increase value\"\u003eIncrement\u003c/a\u003e\u003ca class=\"t-link t-icon t-arrow-down\" href=\"#\" tabindex=\"-1\" title=\"Decrease value\"\u003eDecrement\u003c/a\u003e\u003c/div\u003e\u003cscript type=\"text/javascript\"\u003e\tjQuery(\u0027#RulePriority\u0027).tTextBox({val:0, step:1, minValue:-2147483648, maxValue:2147483647, digits:0, groupSize:3, negative:1, text:\u0027Enter value\u0027, type:\u0027numeric\u0027});\u003c\\/script\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"RulePriority\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"title":"Active","field":"Active","filterable":{},"encoded":true,"editor":"\u003cinput class=\"check-box\" data-val=\"true\" data-val-required=\"The Active field is required.\" id=\"Active\" name=\"Active\" type=\"checkbox\" value=\"true\" /\u003e\u003cinput name=\"Active\" type=\"hidden\" value=\"false\" /\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"Active\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"width":"200px","command":[{"name":"Details","buttonType":"ImageAndText","text":"Details","click":error_handler},{"name":"edit","buttonType":"ImageAndText","text":"Edit"}]}],"pageable":{"buttonCount":10},"scrollable":false,"editable":{"confirmation":"Are you sure you want to delete this item?","mode":"inline","create":true,"update":true,"destroy":true},"dataSource":{"transport":{"prefix":"","read":{"url":"/Manage/Device/DeviceRules_GetForDevice?ViewSuffix=#=ViewSuffix#"},"update":{"url":"/Manage/Device/Device1_Update"},"create":{"url":"/Manage/Device/Device1_Create"},"destroy":{"url":"/Manage/Device/Device1_Delete"}},"pageSize":10,"page":1,"total":0,"serverPaging":true,"serverSorting":true,"serverFiltering":true,"serverGrouping":true,"serverAggregates":true,"type":"aspnetmvc-ajax","filter":[],"schema":{"data":"Data","total":"Total","errors":"Errors","model":{"id":"DeviceRuleID","fields":{"ViewSuffix":{"type":"string"},"DeviceRuleID":{"type":"number"},"RuleName":{"type":"string"},"RulePriority":{"type":"number"},"Active":{"type":"boolean"},"Conditions":{"type":"object"},"deviceTag":{"type":"string"}}}}}});});<\/script>' Generated code:'var o,e=kendo.htmlEncode;with(data){o='\n <div class="k-widget k-grid" id="Rules_'+(deviceTag)+'"><table cellspacing="0"><colgroup><col /><col /><col /><col /><col /><col style="width:200px" /></colgroup><thead class="k-grid-header"><tr><th class="k-header" data-field="DeviceRuleID" data-title="Device Rule ID" scope="col"><span class="k-link">Device Rule ID</span></th><th class="k-header" data-field="ViewSuffix" data-title="View Suffix" scope="col"><span class="k-link">View Suffix</span></th><th class="k-header" data-field="RuleName" data-title="Rule Name" scope="col"><span class="k-link">Rule Name</span></th><th class="k-header" data-field="RulePriority" data-title="Rule Priority" scope="col"><span class="k-link">Rule Priority</span></th><th class="k-header" data-field="Active" data-title="Active" scope="col"><span class="k-link">Active</span></th><th class="k-header" scope="col"><span class="k-link"> </span></th></tr></thead><tbody><tr class="t-no-data"><td colspan="6"></td></tr></tbody></table><div class="k-pager-wrap k-grid-pager"><a class="k-link k-state-disabled" data-page="1" href="#" title="Go to the first page"><span class="k-icon k-i-seek-w">seek-w</span></a><a class="k-link k-state-disabled" data-page="0" href="#" title="Go to the previous page"><span class="k-icon k-i-arrow-w">arrow-w</span></a><ul class="k-pager-numbers k-reset"><li><span class="k-state-selected" data-page="1">1</span></li></ul><a class="k-link k-state-disabled" data-page="2" href="#" title="Go to the next page"><span class="k-icon k-i-arrow-e">arrow-e</span></a><a class="k-link k-state-disabled" data-page="1" href="#" title="Go to the last page"><span class="k-icon k-i-seek-e">seek-e</span></a><span class="k-pager-info k-label">No items to display</span></div></div><script>\n\tjQuery(function(){jQuery("#Rules_'+(deviceTag)+'").kendoGrid({"columns":[{"title":"Device Rule ID","field":"DeviceRuleID","filterable":{},"encoded":true,"editor":"\u003cdiv class=\\\"t-widget t-numerictextbox\\\"\u003e\u003cinput class=\\\"t-input\\\" data-val=\\\"true\\\" data-val-number=\\\"The field DeviceRuleID must be a number.\\\" data-val-required=\\\"The DeviceRuleID field is required.\\\" id=\\\"DeviceRuleID\\\" name=\\\"DeviceRuleID\\\" style=\\\"width:50%\\\" type=\\\"text\\\" value=\\\"0\\\" /\u003e\u003ca class=\\\"t-link t-icon t-arrow-up\\\" href=\\\"';\" tabindex=\"-1\" title=\"Increase value\"\u003eIncrement\u003c/a\u003e\u003ca class=\"t-link t-icon t-arrow-down\" href=\";o+='\\\" tabindex=\\\"-1\\\" title=\\\"Decrease value\\\"\u003eDecrement\u003c/a\u003e\u003c/div\u003e\u003cscript type=\\\"text/javascript\\\"\u003e\tjQuery(\u0027';DeviceRuleID\u0027).tTextBox({val:0, step:1, minValue:-2147483648, maxValue:2147483647, digits:0, groupSize:3, negative:1, text:\u0027Enter value\u0027, type:\u0027numeric\u0027});\u003c\\/script\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"DeviceRuleID\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"title":"View Suffix","field":"ViewSuffix","filterable":{},"encoded":true,"editor":"\u003cinput class=\"text-box single-line\" id=\"ViewSuffix\" name=\"ViewSuffix\" type=\"text\" value=\"\" /\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"ViewSuffix\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"title":"Rule Name","field":"RuleName","filterable":{},"encoded":true,"editor":"\u003cinput class=\"text-box single-line\" id=\"RuleName\" name=\"RuleName\" type=\"text\" value=\"\" /\u003e\u003cspan class=\"field-validation-valid\" data-valmsg-for=\"RuleName\" data-valmsg-replace=\"true\"\u003e\u003c/span\u003e"},{"title":"Rule Priority","field":"RulePriority","filterable":{},"encoded":true,"editor":"\u003cdiv class=\"t-widget t-numerictextbox\"\u003e\u003cinput class=\"t-input\" data-val=\"true\" data-val-number=\"The field RulePriority must be a number.\" data-val-required=\"The RulePriority field is required.\" id=\"RulePriority\" name=\"RulePriority\" style=\"width:50%\" type=\"text\" value=\"0\" /\u003e\u003ca class=\"t-link t-icon t-arrow-up\" href=\";o+='\\\" tabindex=\\\"-1\\\" title=\\\"Increase value\\\"\u003eIncrement\u003c/a\u003e\u003ca class=\\\"t-link t-icon t-arrow-down\\\" href=\\\"';\" tabindex=\"-1\" title=\"Decrease value\"\u003eDecrement\u003c/a\u003e\u003c/div\u003e\u003cscript type=\"text/javascript\"\u003e\tjQuery(\u0027;o+='RulePriority\u0027).tTextBox({val:0, step:1, minValue:-2147483648, maxValue:2147483647, digits:0, groupSize:3, negative:1, text:\u0027Enter value\u0027, type:\u0027numeric\u0027});\u003c\\/script\u003e\u003cspan class=\\\"field-validation-valid\\\" data-valmsg-for=\\\"RulePriority\\\" data-valmsg-replace=\\\"true\\\"\u003e\u003c/span\u003e"},{"title":"Active","field":"Active","filterable":{},"encoded":true,"editor":"\u003cinput class=\\\"check-box\\\" data-val=\\\"true\\\" data-val-required=\\\"The Active field is required.\\\" id=\\\"Active\\\" name=\\\"Active\\\" type=\\\"checkbox\\\" value=\\\"true\\\" /\u003e\u003cinput name=\\\"Active\\\" type=\\\"hidden\\\" value=\\\"false\\\" /\u003e\u003cspan class=\\\"field-validation-valid\\\" data-valmsg-for=\\\"Active\\\" data-valmsg-replace=\\\"true\\\"\u003e\u003c/span\u003e"},{"width":"200px","command":[{"name":"Details","buttonType":"ImageAndText","text":"Details","click":error_handler},{"name":"edit","buttonType":"ImageAndText","text":"Edit"}]}],"pageable":{"buttonCount":10},"scrollable":false,"editable":{"confirmation":"Are you sure you want to delete this item?","mode":"inline","create":true,"update":true,"destroy":true},"dataSource":{"transport":{"prefix":"","read":{"url":"/Manage/Device/DeviceRules_GetForDevice?ViewSuffix='+(ViewSuffix)+'"},"update":{"url":"/Manage/Device/Device1_Update"},"create":{"url":"/Manage/Device/Device1_Create"},"destroy":{"url":"/Manage/Device/Device1_Delete"}},"pageSize":10,"page":1,"total":0,"serverPaging":true,"serverSorting":true,"serverFiltering":true,"serverGrouping":true,"serverAggregates":true,"type":"aspnetmvc-ajax","filter":[],"schema":{"data":"Data","total":"Total","errors":"Errors","model":{"id":"DeviceRuleID","fields":{"ViewSuffix":{"type":"string"},"DeviceRuleID":{"type":"number"},"RuleName":{"type":"string"},"RulePriority":{"type":"number"},"Active":{"type":"boolean"},"Conditions":{"type":"object"},"deviceTag":{"type":"string"}}}}}});});\n<\/script>\n';}return o;'@(Html.Kendo().Grid(Of Models.Device) _ .Name("Devices") _ .Groupable() _ .Filterable() _ .HtmlAttributes(New With {.style = "width: 100%", .align = "center"}) _ .Columns(Function(columns) columns.Bound(Function(p) p.Tag).Groupable(True).Width(200) columns.Bound(Function(p) p.Enabled).Groupable(True).Width(200) columns.Bound(Function(p) p.Description).Groupable(True).Width(200) columns.Bound(Function(p) p.Suffix).Groupable(True).Width(200) columns.Command(Function(command) command.Edit() command.Destroy() End Function).Width(200) End Function) _ .Editable(Function(editable) editable.Mode(GridEditMode.InLine)) _ .ToolBar(Function(toolbar) toolbar.Create()) _ .DataSource(Function(dataSource) dataSource.Ajax.Events(Function(events) events.Error("error_handler")) dataSource.Ajax.Model(Sub(model) model.Id(Function(p) p.Suffix)) dataSource.Ajax.Create(Function(create) create.Action("Device_Create", "Device")) dataSource.Ajax.Read(Function(read) read.Action("Device_Read", "Device")) dataSource.Ajax.Update(Function(update) update.Action("Device_Update", "Device")) dataSource.Ajax.Destroy(Function(delete) delete.Action("Device_Delete", "Device")) End Function) _ .Events(Function(events) events.DataBound("dataBound") End Function) _ .ClientDetailTemplateId("RuleTemplate") ) <script> function dataBound() { this.expandRow(this.tbody.find("tr.k-master-row").first()); }</script><script id="RuleTemplate" type="text/kendo-tmpl"> @(Html.Kendo().Grid(Of Models.DeviceRule) _ .Name("Rules_#=Suffix#") _ .Columns(Function(columns) columns.Bound(Function(p) p.Suffix).Groupable(True) columns.Bound(Function(p) p.RuleID).Groupable(True) columns.Bound(Function(p) p.Name).Groupable(True) columns.Bound(Function(p) p.Priority).Groupable(True) columns.Bound(Function(p) p.Active).Groupable(True) End Function) _ .DataSource(Function(dataSource) dataSource.Ajax.Read(Function(read) read.Action("DeviceRules_Read", "Device", New With {.Suffix = "#=Suffix#"})) End Function) _ .Pageable() _ .Sortable() _ .ToClientTemplate()) </script>columns.Bound(o => o.Person).EditorTemplateName("Handlers");
Html.Kendo().Grid<SelectedProjects>()
.Name("StaticViewGrid")
.HtmlAttributes(new { @style = "display:inline-block;" })
.Columns(columns =>
{
columns.Bound(o => o.Selected);
columns.Bound(o => o.SystemID);
columns.Bound(o => o.ProjectName);
columns.Bound(o => o.Environment);
columns.Bound(o => o.SitEntryDate).Format("{0:d}");
columns.Bound(o => o.SitExitDate).Format("{0:d}");
columns.Bound(o => o.ProductionInstallDate).Format("{0:d}");
})
.ToolBar(toolbar => toolbar.Save())
.Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InCell))
.Filterable()
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Model(model =>
{
model.Id(o => o.EngagementID);
model.Field(o => o.Selected).Editable(true);
model.Field(o => o.SystemID).Editable(false);
model.Field(o => o.ProjectName).Editable(false);
model.Field(o => o.Environment).Editable(false);
model.Field(o => o.SitEntryDate).Editable(false);
model.Field(o => o.SitExitDate).Editable(false);
model.Field(o => o.ProductionInstallDate).Editable(false);
})
.Read(read => read.Action("SelectedEngagementItemData", "Amethyst"))
.Update(update => update.Action("SelectedEngagementItems_Update", "Amethyst"))
)
public partial class SelectedProjects
{
public Guid EngagementViewID { get; set; }
public string EngagementViewName { get; set; }
public bool Selected { get; set; }
public int EngagementID { get; set; }
public Nullable<int> SystemID { get; set; }
public string ProjectName { get; set; }
public string Environment { get; set; }
public Nullable<DateTime> SitEntryDate { get; set; }
public Nullable<DateTime> SitExitDate { get; set; }
public Nullable<DateTime> ProductionInstallDate { get; set; }
}