Hi,
I am trying to access the grid column in detail template and it's gives me invalid template.
The code look's like
@(Html.Kendo().Grid<MessageViewModel>()
.Name("messageGrid")
.Columns(columns =>
{
columns.Bound(e => e.MessageName);
columns.Bound(e => e.MessageSentTime);
columns.Bound(e => e.Message).Visible(false);
})
.Sortable()
.Pageable()
.Scrollable()
.Groupable()
.ClientDetailTemplateId("template")
.HtmlAttributes(new {style = "height:550px;"})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(25)
.Read(read => read.Action("GetMessageGridData", "Home").Data("getGridData"))
))
<script id="template" type="text/kendo-tmpl">
@(Html.Kendo().PanelBar()
.Name("Panel_#:Id#") // this id is from parent grid.
.Items(panelbar =>
{
panelbar.Add().Text("#:MessageName#")
.Expanded(false)
.Content("<pre>" + @Html.Raw(Html.Encode("#:Message#")) + "</pre>");
}).ToClientTemplate()
)
</script>
Please help me.
Hi,
I need to call scheduler's navigate function when I click Search button. How can I do that?
I wrote the following code for refreshing the scheduler but it sometimes works and sometimes not.
$(
"#gridJobAllocation"
).data(
"kendoGrid"
).dataSource.read();
Thanks.
I'm trying to figure out how to have one of my fields data validated through my controller on a popup edit via the grid by GridEditMode.Popup.
Here's how my grid is set up:
@(Html.Kendo().Grid(Model)
.Name("areasGrid")
.Columns(c =>
{
c.Bound(p => p.Id).Title("ID").Visible(false);
c.Bound(p => p.AreaName).Title("Area");
c.Bound(p => p.SupervisorPic).Title("User").Visible(false);
c.Bound(p => p.SupervisorName).Title("Supervisor");
c.Command(command => { command.Edit(); command.Destroy(); }).Width(170);
})
.AllowCopy(true)
.Selectable()
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Model(model =>
{
model.Id(p => p.Id);
})
.PageSize(30)
.Events(events => events.Error("error_handler"))
.Create(update => update.Action("EditingPopup_Create", "ProgramAssignment"))
.Read(read => read.Action("EditingPopup_Read", "ProgramAssignment"))
.Update(update => update.Action("EditingPopup_Update", "ProgramAssignment"))
.Destroy(update => update.Action("EditingPopup_Destroy", "ProgramAssignment"))
)
.Sortable()
.Filterable()
.ToolBar(toolbar =>
{
toolbar.Create();
})
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("Area").Window(w => w.Width(400)).CreateAt(GridInsertRowPosition.Bottom))
.Pageable(p => p.PageSizes(new int[] { 10, 20, 30, 50 }))
.Resizable(resize => resize.Columns(false))
.ColumnMenu()
)
And here's my template where users can add/edit records that's used by the grid's editable template name:
@model Voice.ViewModels.AreaViewModel
<
link
href
=
"~/Content/kendo/2015.3.1111/kendo.blueopal.min.css"
rel
=
"stylesheet"
type
=
"text/css"
/>
@(Html.Kendo().TextBoxFor(model => model.Id)
.Name("Id")
.HtmlAttributes(
new
{
@style = "display:none"
}
)
)
<
table
>
<
tr
>
<
td
>
<
label
>Area</
label
>
</
td
>
<
td
>
@(Html.Kendo().TextBoxFor(model => model.AreaName)
.Name("AreaName")
.HtmlAttributes(
new
{
@style = "width: 255px",
@placeholder = "Area Name",
@id = "AreaName",
@class = "k-textbox",
@required = "required",
@validationmessage = "Enter area name.",
@maxlength = "255"
}
)
)
</
td
>
</
tr
>
<
tr
>
<
td
>
<
label
>Supervisor</
label
>
</
td
>
<
td
>
@(Html.Kendo().TextBoxFor(model => model.SupervisorPic)
.Name("SupervisorPic")
.HtmlAttributes(
new
{
@style = "width: 255px",
@placeholder = "Supervisor PIC",
@id = "SupervisorPic",
@class = "k-textbox",
@required = "required",
@validationmessage = "Enter the PIC code of the supervisor.",
@maxlength = "3"
}
)
)
</
td
>
</
tr
>
</
table
>
Ideally, I'd like to be able to validate the SupervisorPic field (basically someone's user ID at my work) by calling a method in my controller to validate the entry against our security system. Is this possible?
Hello,
Is it possible to combine virtualization and MVVM in a ComboBox?
Because I'm trying to do it and it doesn't work.
If yes can you send me the link to an example, because I've been searching and I didn't find any.
Thank you,
Olido.
Hi, I have been receiving the error "0x800a138f - JavaScript runtime error: Unable to get property 'show' of undefined or null reference". I've looked over my code and examined my javascript function, but I have been unable to find any errors. Why would the .show error out on me?
My Code looks as follows:
@(Html.Kendo().Notification()
.Name("#popupNotification")
.Width("100%")
.Position(p => p.Pinned(true).Top(30).Right(30))
.Stacking(NotificationStackingSettings.Down)
.AutoHideAfter(7000)
.Templates(t =>
{
t.Add().Type("info").ClientTemplateID("popupTemplate");
})
)
<button id="showNotification" class="k-button">Notification</button><br />
<script id="popupTemplate" type="text/x-kendo-template">
<div class="">
<h3>#= title #</h3>
<p>#= message #</p>
</div>
</script>
<script>
$(document).ready(function() {
var popupNotification = $("#popupNotification").data("kendoNotification");
$("#showNotification").click(function() {
popupNotification.show ({
title: "New Notification",
message: "Test"
}, "info");
});
});
</script>
I have a Grid with a detail template to show another records related to the main data set. I'm trying to export everyting to excel but when i export it excel says "Excel found unreadable content" if i make the function to return an empty list to the export function the excel file has no problem it shows nothing about details but columns names. but if i return the dataset that i need the message of unreadable content is shown.
i've followed the example http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/how-to/excel/detail-grid-export and http://docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/excel/detail-grid-export so the functions are practically the same
var detailExportPromises = [];
var dataSource = new kendo.data.DataSource({
type: "aspnetmvc-ajax",
transport: {
read: "@Url.Action("Fracciones_Read", "Home")",
type: "POST"
},
schema: {
data: "Data",
total: "Total",
error: "Errors"
}
});
dataSource.read();
function dataBound() {
detailExportPromises = [];
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
function parameters() {
return {
fechaIni: $("#fechaIni").data("kendoDatePicker").value(),
fechaFin: $("#fechaFin").data("kendoDatePicker").value(),
operacion: "Imp"
}
}
function fracciones_excelExport(e) {
e.preventDefault();
}
function excelExport(e) {
e.preventDefault();
var workbook = e.workbook;
detailExportPromises = [];
var masterData = e.data;
for (var rowIndex = 0; rowIndex < masterData.length; rowIndex++) {
exportChildData(masterData[rowIndex].NumeroPedimento, rowIndex);
}
// wait for all detail grids to finish exporting
$.when.apply(null, detailExportPromises)
.then(function () {
// get the export results
var detailExports = $.makeArray(arguments);
// sort by masterRowIndex
detailExports.sort(function (a, b) {
return a.masterRowIndex - b.masterRowIndex;
});
// add an empty column
workbook.sheets[0].columns.unshift({ width: 30 });
// prepend an empty cell to each row
for (var i = 0; i < workbook.sheets[0].rows.length; i++) {
workbook.sheets[0].rows[i].cells.unshift({});
}
// merge the detail export sheet rows with the master sheet rows
// loop backwards so the masterRowIndex doesn't need to be updated
for (var i = detailExports.length - 1; i >= 0; i--) {
var masterRowIndex = detailExports[i].masterRowIndex + 1;
var sheet = detailExports[i].sheet;
// prepend an empty cell to each row
for (var ci = 0; ci < sheet.rows.length; ci++) {
if (sheet.rows[ci].cells[0].value) {
sheet.rows[ci].cells.unshift({});
}
}
// insert the detail sheet rows after the master row
[].splice.apply(workbook.sheets[0].rows, [masterRowIndex + 1, 0].concat(sheet.rows));
}
// save the workbook
kendo.saveAs({
dataURI: new kendo.ooxml.Workbook(workbook).toDataURL(),
fileName: "Importaciones.xlsx"
});
});
}
function exportChildData(NumeroPedimento, rowIndex) {
var deferred = $.Deferred();
detailExportPromises.push(deferred);
var rows = [{
cells: [
{ value: "DescripcionFactura" },
{ value: "DescripcionPedimento" },
{ value: "Arancel" }
]
}];
dataSource.filter({ field: "NumeroPedimento", operator: "eq", value: NumeroPedimento });
var exporter = new kendo.ExcelExporter({
columns: [
{ field: "DescripcionFactura" },
{ field: "DescripcionPedimento" },
{ field: "Arancel" }
],
dataSource: dataSource
});
exporter.workbook().then(function (book, data) {
deferred.resolve({
masterRowIndex: rowIndex,
sheet: book.sheets[0]
});
});
}
</script>
columns.Bound(m => m.UserName).Title("User Name").Width(115).Filterable(f => f.Cell(c => c.Operator("contains").ShowOperators(false).MinLength(5000)));
I am try to create a simple diagram, indicating the position of a record within a workflow. All I need is a line of different coloured circles, appropriately coloured, along with a label.
I have managed most of this, however the connectors, rather than linking to the circles, always use the text blocks to link to, meaning the lines are never straight, and not connected to the shapes.
How can I force the connectors to link to the shapes, and ignore the text?
I've attached a screenshot of the result I currently get.
Below is the page code:-
@{
ViewBag.Title =
"Index"
;
}
<h2>TEST</h2>
<script>
function
visualTemplate(options) {
var
dataviz = kendo.dataviz;
var
g =
new
dataviz.diagram.Group();
var
dataItem = options.dataItem;
g.append(
new
dataviz.diagram.Circle({
width: 50,
height: 50,
fill: dataItem.Colour,
stroke: {
width: 0
}
}));
g.append(
new
dataviz.diagram.TextBlock({
text: dataItem.PositionName,
x: 60,
y: 20,
color:
"black"
}));
return
g;
}
</script>
<div>
@(Html.Kendo().Diagram()
.Name(
"diagram"
)
.DataSource(dataSource => dataSource
.Read(read => read
.Action(
"GetWFData"
,
"Test"
)
)
.Model(m => m.Children(
"Items"
))
)
.Editable(
false
)
.Pannable(
false
)
.Zoom(0)
.Layout(l => l.Type(DiagramLayoutType.Layered))
.ShapeDefaults(sd => sd
.Visual(
"visualTemplate"
)
)
.ConnectionDefaults(cd => cd
.Stroke(s => s
.Color(
"#979797"
)
.Width(2)
)
)
)
</div>
Thanks
Hi Team, Below is my requirement.
In a page,I have multiple KENDO MVC Grids where in some of grids i have Add & Update commands. I need to display Confirm Model dialog before submitting the row to controller. I didnt find any events to do this.
Please help. Thanks. Below is my MVC grid code
@(Html.Kendo().Grid<iMAP.SRT.Core.SRTPRODUCT>().Name("SRT").Columns(columns =>{ columns.Command(command => { command.Edit(); }).HeaderHtmlAttributes(new { @class = "headercolumn" }).Width(130); columns.Bound(c => c.ACTIVE).Title("ACTIVE").HeaderHtmlAttributes(new { @class = "headercolumn" }).ClientTemplate("<input type='checkbox' #= ACTIVE ? checked='checked' :'' # />").Width(60); columns.Bound(c => c.CODE).Title("PRODUCT CODE").HeaderHtmlAttributes(new { @class = "headercolumn" }).Width(120); columns.Bound(c => c.DESCR).Title("DESCRIPTION").HeaderHtmlAttributes(new { @class = "headercolumn" }).Width(360);}).ToolBar(toolbar => { toolbar.Create(); })//.ToolBar(toolBar => toolBar.Template(@"<a id='addSome' class='k-button k-button-icontext k-grid-add' onclick='PDSBOMResults();'><span class='k-icon k-add'></span>Add new record</a>")).Editable(editable =>{ editable.Mode(GridEditMode.InLine).Window(window =>{ window.HtmlAttributes(new { @class = "k-window-titlebar;k-window-title;k-grid-update;k-grid-cancel;k-window-action;k-icon k-update;" });});}).Editable(editable => editable.Mode(GridEditMode.InLine)).HtmlAttributes(new { style = "height:500px;" }).Groupable().Scrollable(scrollable => scrollable.Virtual(true)).Selectable(selectable => selectable .Mode(GridSelectionMode.Multiple)).Filterable()//.Filterable(ftb => ftb.Mode(GridFilterMode.Row)).Resizable(resize => resize.Columns(true)).Events(x => x.Edit("popupProductsModule").DataBound("onGrisDataBound"))//.Events(events => events.Edit(@<text>function (e) {if (e.model.isNew() == false) {$("#CODE").attr("readonly", true);$("#CREATED").attr("hidden", true);$("#CREATEDBY").attr("hidden", true);$("label[for='CREATED']").attr("hidden", true);$("label[for='CREATEDBY']").attr("hidden", true)}}</text>)).DataSource(dataSource => dataSource .Ajax().Events(events => events.RequestEnd("onRequestEndForProducts")).Model(model =>{ model.Id(p => p.PRODUCTID); model.Field(p => p.CODE).Editable(true);}).Create(update => update.Action("InsertKBProducts", "SrtProject").Data("passParamsForInsertKBProducts")).Read(read => read.Action("GetKBProducts", "SrtProject").Data("getMainProductdetailsParams")).Update(update => update.Action("UpdateKBProducts", "SrtProject").Data("passParamsForUpdateKBProducts")).Destroy(update => update.Action("DeleteKBProducts", "SrtProject"))))