I have a checkbox in a grid:
columns.Bound(p => p.Display);
I also have the following editor template:
@model Boolean
@Html.Kendo().CheckBoxFor(m => m)
During editing the checkbox editor template does show, however the checked state is always false even when the underlying data is true.
Your search function inside the actual forum does not return any results.
See attached picture.
Hello,
I use the following approach to configure custom editing UI for the column: http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-columns.editor
(see also Code below)
this works for textcolumns but there is a Problem with kendoNumericTextBox, kendoTimePicker and kendoDatePicker.
If I click into the column the corresponding editor displays but after editing the wrong value is given back to the text field - for me it looks like there is a formatting problem with the german language...
in this Video https://www.screencast.com/t/GkXn5uS7SH2 you can see what's going on:
How to set the Editors (kendoNumericTextBox, kendoTimePicker and kendoDatePicker) that they give the correct value back?
$(
function
() {
var
grid = $(
"#grdMitgliedprofile"
).data(
"kendoGrid"
);
grid.columns[1].editor =
function
(container, options) {
//-----------------------------------------
//Eintrag_INT
//-----------------------------------------
if
(options.model.Profilfeldtyp_ID == 1) {
$(
"<input name='"
+ options.field +
"' data-bind='value:"
+ options.field +
"'/>"
).appendTo(container).kendoNumericTextBox({
format:
"n"
,
decimals: 0
});
}
//-----------------------------------------
//Eintrag_FLOAT
//-----------------------------------------
else
if
(options.model.Profilfeldtyp_ID == 2) {
$(
"<input data-bind='value:"
+ options.field +
"'/>"
).appendTo(container).kendoNumericTextBox({
format:
"n"
,
decimals: 2,
culture:
"de-DE"
});
}
//-----------------------------------------
//Eintrag_BIT
//-----------------------------------------
else
if
(options.model.Profilfeldtyp_ID == 3) {
//$("<input type='checkbox' data-bind='value:" + options.field + "' class='k-checkbox'/>").appendTo(container);
$(
"<input data-bind='value:"
+ options.field +
"'/>"
).appendTo(container).kendoDropDownList({
dataTextField:
"text"
,
dataValueField:
"value"
,
dataSource: [
{ text:
"JA"
, value:
"JA"
},
{ text:
"NEIN"
, value:
"NEIN"
},
],
});
}
//-----------------------------------------
//Eintrag_VARCHAR
//-----------------------------------------
else
if
(options.model.Profilfeldtyp_ID == 4) {
$(
"<textarea data-bind='value:"
+ options.field +
"' class='k-textbox'/>"
).appendTo(container);
}
//-----------------------------------------
//Eintrag_MONEY
//-----------------------------------------
else
if
(options.model.Profilfeldtyp_ID == 5) {
$(
"<input data-bind='value:"
+ options.field +
"'/>"
).appendTo(container).kendoNumericTextBox({
format:
"c"
,
decimals: 2,
culture:
"de-DE"
});
}
//-----------------------------------------
//Eintrag_TIME
//-----------------------------------------
else
if
(options.model.Profilfeldtyp_ID == 6) {
$(
"<input data-bind='value:"
+ options.field +
"'/>"
).appendTo(container).kendoTimePicker({
dateInput:
true
,
format:
"HH:mm:ss"
,
parseFormats: [
"HH:mm:ss"
],
culture:
"de-DE"
});
}
//-----------------------------------------
//Eintrag_DATETIME
//-----------------------------------------
else
if
(options.model.Profilfeldtyp_ID == 7) {
$(
"<input data-bind='value:"
+ options.field +
"'/>"
).appendTo(container).kendoDatePicker({
dateInput:
true
,
format:
"dd.MM.yyyy"
,
culture:
"de-DE"
});
}
//-----------------------------------------
//Eintrag_IMAGE
//-----------------------------------------
else
if
(options.model.Profilfeldtyp_ID == 8) {
$(
"<input name='files' id='files' type='file'/>"
).appendTo(container).kendoUpload({
async: {
saveUrl:
"save"
,
removeUrl:
"remove"
,
autoUpload:
true
}
});
}
else
{
$(
"<textarea data-bind='value:"
+ options.field +
"' class='k-textbox'/>"
).appendTo(container);
}
}
})
Hello,
If I reload the tabstrip Content of the second tab with JavaScript with tabStrip.reload(item) in a partialview the Content is not replaced but
always appended...
@(Html.Kendo().TabStrip().Name(
"tabMitglieddokumenteEdit"
)
.Animation(
false
).Items(tab =>
{
tab.Add().Text(
"Ansicht"
).Selected(
true
).Content(@<text><iframe style=
"position: absolute; height: calc(100% - 70px); width:100%; border: none"
frameborder=
"0"
src=
"@ViewBag.BCPHostUrl/DocumentViewer?source=Mitglieddokumente&id=@Model.Mitglied_ID&docid=@Model.Dokument_ID&w=100&h=100&sidepane=true&toolbar=true"
></iframe></text>);
tab.Add().Text(
"Dokumentdaten"
).LoadContentFrom(
"DokumentEdit_Read"
,
"Mitglieddokumente"
,
new
{ mitgliedid = @Model.Mitglied_ID, dokumentid = @Model.Dokument_ID });
}))
maybe the reason is that the tabstrip is in a partial view but how to avoid that?
robert
In order to use Boostrap tooltips, I have the following on my page.
$(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip();
});
However, when using a grid with hierarchy, the tooltips of the details grids are not rendered yet so the above method cannot work for them.
Are there some events that I can hook to when the details grids appear?
In my ASP.NET Core application I use a Razor template to create a Kendo grid based on one of my ViewModels. The grid itself is set to use InCell editing and one of the columns generated corresponds to a string variable in the ViewModel. When I clear the string cell in the grid and trigger an update to the grid's datasource I would expect the value of the string variable in the model of the datasource request to be an empty string. However, when I stop at a break point in the controller and look at the properties of the model the string value has a value of null.
What would I need to do to pass along an empty string in the model to the controller action?
I have a custom Edit button on Grid.
Upon clicking Edit, I get the selected grid data row:
function onUserOrgEdit(e) {
...
var data = this.dataItem($(e.currentTarget).closest("tr"));
...
}
Next, I need to refresh my window:
var win = $("#createUserWindow").data("kendoWindow")
win.refresh({
url: "/Admin/EditOrgRole",
data: data
});
I cannot JSON.stringify because wrong content-type is sent to controller action and asp.net core mvc not able to bind JSON correctly. I get null values in controller action.
What is the correct way to do this?
Thanks.
I set MinLength on Autocomplete.
However when I click on the "clear" icon of the autocmplete box there are a few unexpected behaviors
- there is a call to the controller with empty text
- the dropdown remains open saying "no data found"
I have an editable grid with custom EditorTemplate, the grid has "InLine" edit mode.
I would like to send a property to this EditorTemplate by using EditorViewData. This property is assigned to the selected row.
@(Html.Kendo().Grid<VehicleWithTrackerDTO>()
.Name(
"VehiclesGrid"
)
.Events(e => e
.ExcelExport(
"excelExport"
)
.BeforeEdit(
"getColor"
))
.Columns(columns =>
{
// LOOK AT THE FIRST LINE BELOW:
columns.Bound(d => d.ImageId).Title(
"Image"
).ClientTemplate(
"<img src='"
+ Url.Content(
"~/imgs/"
) +
"#:Image#'/>"
).Width(120).Sortable(
false
).Filterable(
false
).EditorViewData(
new
{ colorId = 1 });
// colorId = 1 should be replaced with something like #:ColorId#
columns.Bound(d => d.Brand).Width(200).Filterable(fb => fb.Multi(
true
).Search(
true
));
columns.Command(command => { command.Edit(); }).Width(100);
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.DataSource(source => source
.Ajax()
.Events(events => events.Error(
"errorHandler"
))
.Model(model => model.Id(p => p.DeviceId))
.Read(read =>
{
read.Action(
"GetVehicles"
,
"Vehicles"
).Data(
"searchQuery"
);
})
.Update(update => update.Action(
"Update"
,
"Vehicles"
))
)
)
My question is how can I send an item with "" property?
My first idea was to create a javascript function, which will return data like this:
function
getColor(e) {
return
{
colorId: e.model[
"ColorId"
]
};
}
But I can't see the solution to pass this data into EditorViewData method.
Thanks,
Mateusz
I have a data on a server with the CalbelCase formatting for properties. How bind column to model via lambda expression?
This example demonstrates this:
@(Html.Kendo().Grid<WebApplication66.Models.Contact>()
.Name("Grid")
.Columns(columns => {
columns.Bound(m => m.Name);
columns.Bound(m => m.Price);
})
.DataSource(d => d
.WebApi()
.Model(model => {
model.Id(m => m.Key);
model.Field(m => m.Name);
})
.Read(read => read.Action("Get", "Contacts"))
)
)
My JSON form WebApi controller:
{"data":[{"name":"Test Name","price":100,"key":0},{"name":"Test Name 2","price":1,"key":1}],"total":2,"aggregateResults":null,"errors":null}