I am migrating things from the "forms" world to more and more Core based projects. I keep hitting an a wall which seems to boil down to missing documentation. Can someone point me in the correct direction?
My needs start with the basic need to configure the layout of a given form for the user upon initial display. They will make various selections and press the infamous "update" button when done. In the broadest sense of things I need to do something like:
panelbar.items[0].expanded =
true
;
panelbar.items[1].expanded =
false
;
That looks simple. I have figured out how to get the Id of the panel control and have a valid object. For the life of me I cannot find anything that documents how to find/use the items object. I know it exists but how of find the item at index "x" seems beyond me. Based upon the documentation I have found it seems I must find a reference to the item at index "x", then set its expanded property to true/false. Since I cannot find the index, I am up a creek without the paddle.
I would appreciate any pointers someone can send my way.
On the positive side: My conversion activities have shown me the power of the telerik core tools. My initial thoughts has some misgivings however experience has shown they are surprisingly powerful. I am amazed with the amount of code being replaced by what is now standard functionality. Working with a framework, as opposed to against it, is a simple but important concept to learn. Kudos to the Telerik/Progress team.
Hello,
I have a signalr bound grid. The grid has custom popup editor with Tabstrip. First tab - upload picture, or show picture based on ImageUrl field of currently edited record.
So, I'm trying to access:
- @Model.ImageUrl - it throws null exception and breaks the page overall, or
- @Html.ValueFor(model=>model.ImageUrl) - it is always null, but I'm sure there are values in database
I have tried the same, just to test it, with for example Firstname field from the same model - the same result
@Html.LabelFor(model=>model.ImageUrl) and @Html.EditorFor(model=>model.ImageUrl) work fine, I can see the label and the correct value inside a textbox.
<div class="row">
<div>
@Html.ValueFor(model => model.Firstname) @*this is always null, but I need a value*@
</div>
<div>
@* @Model.Firstname this breaks whole page with null exception*@
</div>
<div>
@Html.EditorFor(model => model.Firstname) @*this works correctly*@
</div>
</div>
/////////// below is the code, why I need the value
<div id="pictures" class="picture dropZoneElement">
@if (Html.ValueFor(model => model.ImageUrl) != null)
{
<div class="k-edit-label">
<img src="Files/Images/" + @Html.ValueFor(model => model.ImageUrl) />
</div>
}
else
{
<div class="textWrapper">
<p><span>+</span>Add Image</p>
<p class="dropImageHereText">Drop image here to upload</p>
</div>
}
</div>
Kind regards
DC
I noticed in one of my forms that suddenly a validation message appears for a dropdownlist. The message could not be found in kendo.messages.xx-XX.js nor was it a validation message from ASP.NET Core (I use my own, localized form of "Required" etc.attribute messages). I found the message inside the file "Exceptions.resx" in the source of Kendo MVC:
<
data
name
=
"ValueNotValidForProperty"
xml:space
=
"preserve"
>
<
value
>The value '{0}' is invalid.</
value
>
</
data
>
How can I translate this into another language?
Regards
Heiko
Hello,
I am experiencing a problem applying culture to the validation messages in my editable grid. I experience the exact same problem as in the following demo: https://demos.telerik.com/aspnet-core/grid/globalization?culture=fr-FR
As a user I would expect the validation message to be localized but they don't seem to be.
To reproduce,
Any help on this will be greatly appreciated!
Thank you
I create a disabled DropDownList with the following code:
<kendo-dropdownlist
for
=
"FreezeVM.Year"
class
=
"form-control"
datatextfield=
"Text"
datavaluefield=
"Value"
height=
"290"
enable=
"false"
bind-to=
"Model.YearList"
>
</kendo-dropdownlist>
Based on another DropDownList I change the value of this list:
function
onTargetTypeChange(e) {
var
targetValue =
this
.value();
var
currentYear =
new
Date().getFullYear();
var
yearDrop = $(
"#FreezeVM\\.Year"
).data(
"kendoDropDownList"
);
if
(targetValue ===
"6"
|| targetValue ===
"7"
) {
yearDrop.value(currentYear + 1);
}
else
{
yearDrop.value(currentYear);
};
};
The change is reflected on the UI, but not on the underlying Model which still has the old value. As soon as I enable the DropDownList everything works fine. What I expect is that the value gets changed no matter if the dropdown is enabled or disabled.
Regards
Heiko
Hi,
i am using ASP.NET Core with a KENDO Grid which calls a Razor Page handler.
For performance reasons, the Grid is pageable, filterable and sortable.
Now we want the DataSourceRequest on the server to directly filter the MongoDB query. I am using "AsQueryable()" on the IMongoCollection, which i thought works nicely with the KENDO DataSourceResult method.
But the speed of the MongoDB query is always slow. It does not matter if i filter the grid for just one result or if i display all results (paged).
Is this the correct way to use KENDO Grid with MongoDB "database-filtering"?
I am using the following code:
Client
@(Html.Kendo().Grid<PolicyAudit>().Name(
"PolicyGrid"
)
.Pageable()
.Navigatable()
.Sortable()
.Filterable()
.Columns(columBuilder =>
{
columBuilder.Bound(x => x.Orga);
columBuilder.Bound(x => x.Operation);
columBuilder.Bound(x => x.Ressource);
columBuilder.Bound(x => x.TimeStamp);
columBuilder.Bound(x => x.UserEmail);
columBuilder.Bound(x => x.AccessResult);
})
.DataSource(source => source.Ajax()
.Read(
"PolicyOverview"
,
"Policy"
,
new
{ handler =
"ReadPolicyAudits"
})))
Server
public
async Task<IActionResult> OnPostReadPolicyAudits([DataSourceRequest]DataSourceRequest request)
{
var access =
new
PolicyDataAccess();
var col = access.GetCollection<PolicyAudit>(
"MetaPolicyCollection"
);
var data = await col.AsQueryable().ToDataSourceResultAsync(request);
return
new
JsonResult(data);
}
Hello,
I use a template column to have a Kendo style Checkbox in my grid but this is not bind to the underlying boolean value...
with a "normal" Checkbox this is possible with JavaScript but the tsyled Checkbox uses a Label for Styling... (see Picture)
how to do this with the styled checkboxes?
Hello,
Can someone please help.
I'm trying to do a simple Inline edit grid which has a datetime field but when clicking update the datetime field which is passed through to the controller has null. It's actually replicated in the example which Progress supply.
How do I get a valid date through to the controller? surely this is quite a big issue? is it a locale problem?
.chtml
}
<div class="row">
<div class="col-xs-18 col-md-12">
@(Html.Kendo().Grid<Sample.Models.OrderViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Freight);
columns.Bound(p => p.OrderDate);
columns.Bound(p => p.ShipName);
columns.Bound(p => p.ShipCity);
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(160);
})
.Pageable()
.Sortable()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Scrollable()
.Filterable()
.HtmlAttributes(new { style = "height:550px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Batch(true)
.Model(model => model.Id(p => p.OrderID))
.Read(read => read.Action("Orders_Read", "Grid"))
.Update(update => update.Action("Orders_Update", "Grid"))
)
)
</div>
</div>
GridController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Kendo.Mvc.UI;
using Sample.Models;
using Kendo.Mvc.Extensions;
namespace Sample.Controllers
{
public class GridController : Controller
{
public ActionResult Orders_Read([DataSourceRequest]DataSourceRequest request)
{
var result = Enumerable.Range(1, 50).Select(i => new OrderViewModel
{
OrderID = i,
Freight = i * 10,
OrderDate = new DateTime(2016, 9, 15).AddDays(i % 7),
ShipName = "ShipName " + i,
ShipCity = "ShipCity " + i
});
var dsResult = result.ToDataSourceResult(request);
return Json(dsResult);
}
[AcceptVerbs("Post")]
public ActionResult Orders_Update([DataSourceRequest]DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<OrderViewModel> products)
{
//products.OrderDate is null even though I've selected a date on the edit datepicker.
return Json(products.ToDataSourceResult(request));
}
}
}
@(Html.Kendo().Upload()
.Name("File")
.Async(a => a
.AutoUpload(true))
.Files(
files =>
{
if (Model.File != null)
{
files.Add().Name(Model.FileName).Extension(Model.FileExtension).Size((long)Model.FileSize);
}
}
)
.Events(e => e.Select("onSelect"))
.Multiple(false)
)
I saw that there was a demo for initial files in mvc but that disappeared in the asp.net core demos.
Thanks