The StringExtensions -> ToCamelCase method(part of Kendo.Mvc.Extenstions) doesn't return the expected Camel case result.
Include the Kendo.Mvc.Extenstions namespace. Define the following in a controller:
public IActionResult Index()
{
string test = "RANDOMStatusId";
test = test.ToCamelCase();
return View();
}
Set a debugger and see the value of the "test" variable.
The returned from the ToCamelCase() method value is "rANDOMStatusId"
The expected result returned from the ToCamelCase() method value is "randomStatusId"
Currently, the ToCamelCase() method lowers only the first letter, as per the example below:
Is it possible to create another overload of the ToCamelCase() method that transforms the string to "randomStatusId"?
When my company's users create a new "customer site" they upload the customer's logo and then choose some colours that will form the basis of theming for the customer's site. In that way, a customer will 'feel' like they have their own branded experience when using 'their' website.
The colours are inevitably based on the customer's logo. To use the colour picker component, I have to train my users to go to Paint, load the logo, choose the colour using the colour picker, go into the palette and 'copy the crazy 6-digit numbers that may contain letters of the alphabet that starts with a #' and paste that into the colour picker of our web site.
Rather, I would prefer if they could simply use an eyedropper from the ColorPicker component using functionality similar to https://imagecolorpicker.com/en It would save training and greatly improve the useability of my website.
Can I put that forward as being a feature request?
Thanks
Dave A
Dear Telerik
The feature is related to https://www.telerik.com/account/support-center/view-ticket/1594775 this thread.
It is related to a product environment.
Scenario:
Request:
Please can Telerik create functionality along the lines of:
$("#SomeGrid").data("kendoGrid").setOptions($("#SomeGrid").data("kendoGrid").mergeOptions(OptionsSaved, OptionsNew));
KR
David
By default, the DateRangePicker displays the current and the next month/year in its start view. Is it possible to implement an option for the start view to display the previous and the current month/year?
Problem with ToTreeDataSourceResult method when filtering on root and child level.
Also applying filtering causes a significant slowdown in the query created by the ToTreeDataSourceResult method even when applied to small datasets.
Please refer to the code below and simply filter the first column with the value of 5.
//View
@(Html.Kendo().TreeList<WebApplication1.Models.SerialModel>()
.Name("treelist")
.Toolbar(toolbar => toolbar.Create().Text("New Level"))
.Columns(columns =>
{
columns.Add().Field(e => e.RecordID).Width(280);
columns.Add().Field(e => e.SerialNumber).Width(160);
columns.Add().Field(e => e.Name);
columns.Add().Field(e => e.Location).Width(200);
columns.Add().Field(e => e.ParentID).Width(140);
columns.Add().Command(c =>
{
c.CreateChild().Text("New Child");
c.Edit();
c.Destroy();
}).Width(250);
})
.Editable(editable => editable.Mode("inline")).Filterable(true).Filterable(f => f.Extra(false))
.DataSource(dataSource => dataSource
.Read(read => read.Action("TreeListData", "Home"))
//.ServerOperation(false)
.Model(m =>
{
m.Id(f => f.RecordID);
m.ParentId(f => f.ParentID).DefaultValue("0");
})
)
.Height(540)
)
//Controller code:
public ActionResult TreeListData([DataSourceRequest]DataSourceRequest request, int? id)
{
var source = Enumerable.Range(1, 5).Select(x => new SerialModel()
{
RecordID = x,
SerialNumber = x,
Name = "Name " + x,
Location = "Location " + x,
hasChildren = true,
ParentID = x < 5 ? 0 : (x / 5)
});
return Json(source.ToTreeDataSourceResult(request, e => e.RecordID,
e => e.ParentID, e => id.HasValue ? e.ParentID == id : e.ParentID == 0, m => m));
}
Instead of 1 record it returns 2 same items.
Filtering of the TreeList should be as fast as sorting.
The 'footer' attribute in the TagHelpers for both the DatePicker and DateTimePicker does not result in any corresponding markup / Javascript configuration on the page created by the view.
See https://netcorerepl.telerik.com/QxaPwpPt57ypaI4307
Want to be able to define dual pager controls in the Grid using GridPagerPostion.
@(Html.Kendo().Grid<Model>()
.Name("MyGrid")
.Columns(...)
.Pageable(p => p.Position(GridPagerPosition.Both))
.DataSource( ds => ds....)
)
When I configure with GridPagerPosition.Both, I would like the pagers to be on the top and bottom of the grid content. There is a work around somewhere in the forum but not in the documentations. It works in some page and does not work in others. I get the following error:
The IR:297:45 is the second line where kendo.ui.Pager is being instantiated (gridWidget.dataSource is undefined):
const wrapper = $('<div class="k-pager-wrap k-grid-pager k-widget k-floatwrap pagerTop"/>').insertBefore(gridWidget.element.children(".k-grouping-header"));
gridWidget.pagerTop = new kendo.ui.Pager(wrapper, $.extend({}, gridWidget.options.pageable, { dataSource: gridWidget.dataSource }));
gridWidget.element.height("").find(".pagerTop").css("border-width", "0 0 1px 0");
The reason for this request is that it should be part of the product as the product evolves relying on the css classes and the ability to add dynamic property to the girdWidget is problematic.
I need the Chart series to be able to use a value of the Model to get their names instead of it always being a manually configured string.
Filtering a column bound to a complex object throws a JavaScript error.
This is a regression introduced with v 2023.1.117
Uncaught TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at x (kendo.all.js:313050:21)
at init._createForm (kendo.all.js:313050:21)
at init._init (kendo.all.js:313050:21)
at init._click (kendo.all.js:313050:21)
at HTMLAnchorElement.dispatch (jquery.min.js:3:12445)
at r.handle (jquery.min.js:3:9174)
JavaScript error is thrown and the filter menu is not generated.
Filtering should work as expected.
Hi,
We are looking for a feature like outlook when we start typing with "@" it should display the users list using some API Call or any other method.
Similarly when I start any word with "#" in editor, it should display some suggestions.
1. Allow the elastic behavior of the PDFViewer's mobile scroller to be disabled. Currently, when scrolling to the top or to the bottom, the document jumps and then immediately re-adjusts its position under the widget's header/bottom border.
2. Add the ability to manually scroll the document up/down with mousedown.
3. Add keyboard scrolling support.
Would you be able to implement a more visual aspect for the FileManagement so it look close to this picture.
Attach is the modified Kendo.all.min.js file that you may want to alter so it becomes a permanent in you repository. Changes made for those following :
* Changed:
* template:
* var i
* singleFileTemplate
The style sheet for the effects:
/* 5.7.3 - Filemanager Image Grid View */
.FileManagerImgGridView {
display: flex;
justify-content: start;
align-items: center;
gap: 10px;
cursor: zoom-in;
}
/* 5.7.4 - Filemanager Image List View */
.FileManagerImgListView {
cursor: zoom-in;
max-width: 115px;
box-shadow: 0 0 10px rgba(0,0,0,0.4);
transition-duration: .5s;
}
.FileManagerImgListView:hover {
transition-duration: .5s;
transform: translateY(5px) scale(1.75);
border-radius: 3px;
z-index: 100;
}
/* 5.7.5 - Filemanager Image Detail */
.FileManagerImgDetail {
max-height: 280px;
max-width: 280px;
border-radius: 5px;
box-shadow: 0 0 20px rgba(0,0,0,0.4);
cursor: pointer;
transition-duration: .5s;
}
.FileManagerImgDetail:hover {
transition-duration: .5s;
transform: scale(1.2);
max-width: 80%;
border-radius: 50%;
box-shadow: 0 0 20px rgba(0,0,0,0.4);
}
.FileManagerImgDownloadLink {
display: flex;
justify-content: center;
align-items: center;
margin-left: 10px;
padding: 5px 10px;
border-radius: 10px;
color: var(--bs-primary-inverted);
background-color: var(--bs-primary);
box-shadow: 0 0 10px rgba(0 0 0 /.7);
gap: 5px;
}
.FileManagerImgDownloadLink a {
text-decoration: none;
color: var(--bs-primary-inverted);
}
also here is the C# Thumbnail Class that can be modified if you intend to have you own fabrication of thumbnail as it use to be years ago :-)
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
public virtual IActionResult Thumbnail(string path)
{
var virtualPath = Path.Combine(_thumbnailFolderRoot);
var physicalPath = Path.Combine(ConstantVar.webEnv.WebRootPath, virtualPath.Replace('/', '\\'));
path = Path.Combine(physicalPath, path);
FileInfo imageInfo = new FileInfo(path);
int width = 75;
int height = 75;
bool KeepRatio = true;
using (Image image = Image.Load(imageInfo.FullName))
{
// Figure out the ratio
double ratioX = (double)width / (double)image.Width;
double ratioY = (double)height / (double)image.Height;
// use whichever multiplier is smaller
double ratio = ratioX < ratioY ? ratioX : ratioY;
int newHeight = height;
int newWidth = width;
if (KeepRatio)
{
// now we can get the new height and width
newHeight = Convert.ToInt32(image.Height * ratio);
newWidth = Convert.ToInt32(image.Width * ratio);
}
image.Mutate(s => s.Resize(width: newWidth, height: newHeight));
using (var ms = new MemoryStream())
{
image.SaveAsJpeg(ms);
return File(ms.ToArray(), "image/jpg");
}
}
}
Having a floating label functionality similar to the one available for the native Vue DropDownList, would be nice to have.
https://www.telerik.com/kendo-vue-ui/components/dropdowns/floating-labels/
### Bug report
The Telerik UI ListBox is not being rendered when the AutoBind() option is specified. Regardless of the value that is put inside the method - be it true/false.
### Reproduction of the problem
1. Set the DataSource option of the ListBox without specifying type such as Ajax/Custom.
2. Set the AutoBind(true) option.
3. Run the application - the page is not rendered at all.
### Expected/desired behavior
The widget should be rendered when the AutoBind is set to true/false.
### TicketID: 1524780
### Possible reason for the behavior
When the Ajax/Custom type of the data source is not specified, the type defaults to null. Hence, there is a boolean property that is checked inside the VerifySettings method of the ListBox.cs file in the source. The IsClientBinding property checks if the widget is bound to a data source, however, since the data source does not have a type, it thinks that the widget is bound to the data via the BindTo option which is incorrect.
Having the AutoBind() property and the BindTo() property enabled, a C# error is thrown inside the VerifySettings() method. However, this error should not be thrown when a data source is specified (even without type).
### Environment
* **Kendo UI version:** 2021.2.616
* **jQuery version:** 1.12.4
* **Browser:** [all]
The TagHelper Grid's TagHelper is not correctly serialized and cannot be used to export hidden columns.
<columns>
<column field="Discontinued" hidden="true">
<exportable enabled="true" />
</column>
</columns>
The Grid TagHelper does not export hidden columns if the exportable TagHelper is enabled identically to the Kendo UI for jQuery Grid column exportable option.
The Grid TagHelper should be able to export hidden columns if the exportable TagHelper is enabled identically to the Kendo UI for jQuery Grid column exportable option.