Telerik Forums
Kendo UI for jQuery Forum
5 answers
689 views
Hi,

How do I prevent a date time picker's input box to NOT automatically select all the text on click? Essentially turning it into a default textbox?
Viktor Tachev
Telerik team
 answered on 25 Oct 2019
1 answer
145 views

Recent 2019.3.1023 causes clicking on grid column's filter operator to select all text on whole dialog.

https://dojo.telerik.com/ErejUFaY/2

Ivan Danchev
Telerik team
 answered on 25 Oct 2019
1 answer
117 views

I had to use a "custom" component in the kendoFilterMenu, so I tried the "ui" that is documented in the grid api, and it works.

I think you should add it to the kendoFilterMenu configuration section.

Example: https://dojo.telerik.com/@foxontherock/UBiVIQef

missing documentation here: https://docs.telerik.com/kendo-ui/api/javascript/ui/filtermenu#configuration

Nikolay
Telerik team
 answered on 23 Oct 2019
3 answers
168 views
Dear,

I am doing a booking system with Kendo UI Scheduler, once I delete one event, it always call the POST action instead of the DELETE action declared in my Odata API.
My Odata Controller is like that:
// POST: odata/BookingSchedulers
        [ValidateHttpAntiForgeryToken]
        public async Task<IHttpActionResult> Post(BookingScheduler bookingScheduler)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            bookingScheduler.Start = bookingScheduler.Start.ToLocalTime();
            bookingScheduler.End = bookingScheduler.End.ToLocalTime();

            _bookingSchedulerRepository.Create(bookingScheduler);
            await _bookingSchedulerRepository.SaveAsync();

            return Created(bookingScheduler);
        }

// DELETE: odata/BookingSchedulers(5)
        [ValidateHttpAntiForgeryToken]
        public async Task<IHttpActionResult> Delete([FromODataUri] int key)
        {
            BookingScheduler bookingScheduler = await _bookingSchedulerRepository.FindAsync(key);
            if (bookingScheduler == null)
            {
                return NotFound();
            }

            _bookingSchedulerRepository.Delete(bookingScheduler);
            await _bookingSchedulerRepository.SaveAsync();

            return StatusCode(HttpStatusCode.NoContent);
        }

My POCO is 
public class BookingScheduler
    {
        public int BookingSchedulerID { get; set; }
        public int BookingItemID { get; set; }
        public int ItemBreakdownID { get; set; }
        public string BookingUser { get; set; }
        public DateTime Start { get; set; }
        public DateTime End { get; set; }
        public int StaffID { get; set; }
        public int RoomID { get; set; }
        public string Description { get; set; }
        public string StartTimezone { get; set; }
        public string EndTimezone { get; set; }
        public string RecurrenceID { get; set; }
        public string RecurrenceRule { get; set; }
        public string RecurrenceException { get; set; }
        public bool IsAllDay { get; set; }

        public virtual BookingItem BookingItem { get; set; }
        public virtual Room Room { get; set; }
        public virtual Staff Staff { get; set; }
        public virtual ItemBreakdown ItemBreakdown { get; set; }
    }

and My scheduler datasource is:
bookingDataSource: new kendo.data.SchedulerDataSource({
                //batch: true,
                type: "odata",
                transport: {
                    read: {
                        url: config.bookingSchedulersUrl + '?$expand=ItemBreakdown',
                        dataType: "json"
                    },
                    update: {
                        url: function (data) {
                            return config.bookingSchedulersUrl + "(" + data.BookingSchedulerID + ")";
                        },
                        dataType: "json",
                        type: "PUT",
                        beforeSend: function (req) {
                            req.setRequestHeader('RequestVerificationToken', token);
                        }
                    },
                    create: {
                        url: config.bookingSchedulersUrl,
                        dataType: "json",
                        type: "POST",
                        beforeSend: function (req) {
                            req.setRequestHeader('RequestVerificationToken', token);
                        }
                    },
                    destroy: {
                        url: function (data) {
                            alert(data.BookingSchedulerID);
                            return config.bookingSchedulersUrl + "(" + data.BookingSchedulerID + ")";
                        },
                        dataType: "json",
                        type: "DELETE",
                        beforeSend: function (req) {
                            req.setRequestHeader('RequestVerificationToken', token);
                        }
                    }
                },
                error: function (e) {
                    alert(e.xhr.responseText);
                },
                requestEnd: function(e){
                    //if (e.type == "update") {
                    //    openMessageWindow("#popup-message-template", messageViewModel("Edited Successfully.", "MESSAGE", false));

                    //    var scheduler = $("#scheduler").data("kendoScheduler");
                    //    scheduler.view(scheduler.view().name);
                    //}

                    //if (e.type == "create") {
                    //    openMessageWindow("#popup-message-template", messageViewModel("Created Successfully.", "MESSAGE", false));

                    //    var scheduler = $("#scheduler").data("kendoScheduler");
                    //    scheduler.view(scheduler.view().name);
                    //}

                    if (e.type == "destory") {
                        openMessageWindow("#popup-message-template", messageViewModel("Deleted Successfully.", "MESSAGE", false));

                        var scheduler = $("#scheduler").data("kendoScheduler");
                        scheduler.view(scheduler.view().name);
                    }
                },
                schema: {
                    data: function (data) {
                        return data.value;
                    },
                    total: function (data) {
                        return parseInt(data["odata.count"]);
                    },
                    model: {
                        id: "bookingSchedulerID",
                        fields: {
                            bookingSchedulerID: { from: "BookingSchedulerID", type: "number" },
                            bookingItemID: { from: "BookingItemID", type: "number", defaultValue: data.BookingItemID },
                            itemBreakdownID: { from: "ItemBreakdownID", type: "number", nullable: true },
                            title: { from: "BookingUser", defaultValue: userName },
                            start: { type: "date", from: "Start" },
                            end: { type: "date", from: "End" },
                            roomId: { from: "RoomID", type: "number", nullable: true },
                            staffId: { from: "StaffID", type: "number", nullable: true },
                            startTimezone: { from: "StartTimezone" },
                            endTimezone: { from: "EndTimezone" },
                            description: { from: "Description" },
                            recurrenceId: { from: "RecurrenceID" },
                            recurrenceRule: { from: "RecurrenceRule" },
                            recurrenceException: { from: "RecurrenceException" },
                            isAllDay: { type: "boolean", from: "IsAllDay" },
                            image: { from: "ItemBreakdown.ItemBreakdownImageURL" },
                            itemBreakdownName: { from: "ItemBreakdown.ItemBreakdownName" },
                            color: { from: "ItemBreakdown.Color" }
                        }
                    }
                },
                serverFiltering: true,
                filter: {
                    field: "BookingItemID",
                    operator: "eq",
                    value: data.BookingItemID
                }
            }),

Any one can help, Thanks.


Dimitar
Telerik team
 answered on 23 Oct 2019
2 answers
732 views

Hi support.

I'm using the bootstrap v3 theme in a grid where inline editing is enabled.

I would like to customize the field validation error message and can do this by overriding a few kendo css classes like in the attached screenshot.

I'm wondering if this is the preferred way to customize the grid inline edit field error tooltip?

Best regards

Morten

Morten
Top achievements
Rank 2
Iron
Iron
Iron
 answered on 22 Oct 2019
1 answer
175 views
Mobile platform HTML editing using Xamarin.Forms.Webview.EvaluateJavaScriptAsync() 

<!DOCTYPE html>
<html>
<head>
    <link href="kendo.common.min.css" rel="stylesheet">
    <link href="kendo.rtl.min.css" rel="stylesheet">
    <link href="kendo.default.min.css" rel="stylesheet">
    <link href="kendo.default.mobile.min.css" rel="stylesheet">
    <script src="jquery.min.js"></script>
    <script src="jszip.min.js"></script>
    <script src="kendo.all.min.js"></script>
    <script src="console.js"></script>
    <script>

    </script>

</head>
<body>
    <div id="example">
        <textarea id="editor">Default text to be replaced</textarea>


        <script>
            $("#editor").kendoEditor({
                tools: [
                    "bold",
                    "italic",
                    "underline"
                ],
                resizable: {
                    toolbar: true
                }
            });
        </script>
    </div>    
</body>
</html>


When injecting the above KendoEditor script into the Xamarin.Forms.Webview.EvaluateJavaScriptAsync() after replacing the “Default text..” with an HTML string containing embedded Base64 images,  I am finding that it takes a long period of time before the editor is rendered.  The HTML contains 3 images each around 3Mb in size.  Loading the same HTML containing base64 images in a web application using the KendoEditor is a lot quicker.  Has anyone else used the KendoEditor in this way on the mobile platform, and can give any insight as to why the rendering is taking so long?
Ivan Danchev
Telerik team
 answered on 21 Oct 2019
8 answers
2.0K+ views
Can I make row selection happen with just clicks? Currently with multiple selects enabled, clicking one row at a time unselects the previous row.

Actually I am not very clear of the behavior of multiple selects because seems a bit quirky. Sometimes it leave the class k-selected-state of the previous row and other times not.
Alex Hajigeorgieva
Telerik team
 answered on 18 Oct 2019
7 answers
176 views
Hi,

When initializing my kendo grid with the option "groupable: true" on a Galaxy S2 GT-I9100 mobile phone, android version 4.1.2  (don't know for other phone types or OS versions), the whole grid becomes frozen (no scrolling, extremely slow for other operations like paging).

Note that the groupable option enabled works perfectly inside the device simulator and on a Google Nexus simulator.

Could you please investigate and provide a workaround & internal release fix ASAP? It is extremely annoying.

Thanks
Alex Hajigeorgieva
Telerik team
 answered on 18 Oct 2019
6 answers
313 views

An example cloned from official docs https://dojo.telerik.com/@merogos/EzEtoSuF

<!DOCTYPE html>
<br>
<html><br><head><br>    <meta charset="utf-8"/><br>    <title>Kendo UI Snippet</title><br><br>    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.common.min.css"/><br>    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.rtl.min.css"/><br>    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.silver.min.css"/><br>    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.mobile.all.min.css"/><br><br>    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script><br>    <script src="https://kendo.cdn.telerik.com/2019.3.917/js/kendo.all.min.js"></script><br></head><br><body><br>  <br><script><br>  var dataSource = new kendo.data.DataSource({<br>    data: [<br>                    {  apellido: "Lopez" },<br>                    {  apellido: "Lope" },<br>          {  apellido: "Lopito" }<br>,<br>          {  apellido: "Lopito" }<br>,<br>          {  apellido: "Lòpez" }<br>    ],<br>    filter: { field: "apellido", operator: "contains", value: "L\u00f3p" },<br>    accentFoldingFiltering: "es-ES"<br>  });<br>  dataSource.fetch(function(){<br>    var view = dataSource.view();<br>    console.log(view.length); // displays "0", should display 3<br>    console.log(view[0].apellido); // Nothing<br>  });<br></script><br></body><br></html>

 

 

Jose
Top achievements
Rank 1
 answered on 18 Oct 2019
1 answer
242 views

Hi

Just upgraded to 2019.3.917 and we have lost our ability to enable/disable menu items

here is an example of how we populate a menu datasource in javascript:

<script>
   var sa=[], var mm=[];

  sa.push({ text: '<span id=openPlan><span style="display: inline-block; width: 190px;" >Open Plan...</span><span>Ctrl+O</span></span>',  encoded: false });

  sa.push({ text: '<span id=readPlan><span style="display: inline-block; width: 190px;" >Read Plan...</span><span>Ctrl+R</span></span>',  encoded: false });
  sa.push({ text: '<span id=closePlan><span style="display: inline-block; width: 190px;" >Close Plan...</span><span>Ctrl+S</span></span>', encoded: false });

  mm.push({ text: "Main Menu", items: sa });
      $("#mainMenu").kendoMenu({
        dataSource: mm
    });

    // get a reference to the menu widget
    var menu = $("#mainMenu").data("kendoMenu");
    // disable menu item with id 
    menu.enable("#closePlan", false);
</script>

 

I have an example here: https://dojo.telerik.com/EMeLAdAd

If you set then library to '2019.1.115' it works and the 'Close Plan' item gets disabled, but if you set it to '2019.3.917' then it stays enabled!

 

If anyone could let me know what I am doing wrong here I would be grateful.

 

Thanks

James

Petar
Telerik team
 answered on 17 Oct 2019
Narrow your results
Selected tags
Tags
Grid
General Discussions
Charts
Data Source
Scheduler
DropDownList
TreeView
MVVM
Editor
Window
DatePicker
Spreadsheet
Upload
ListView (Mobile)
ComboBox
TabStrip
MultiSelect
AutoComplete
ListView
Menu
Templates
Gantt
Validation
TreeList
Diagram
NumericTextBox
Splitter
PanelBar
Application
Map
Drag and Drop
ToolTip
Calendar
PivotGrid
ScrollView (Mobile)
Toolbar
TabStrip (Mobile)
Slider
Button (Mobile)
Filter
SPA
Drawing API
Drawer (Mobile)
Globalization
LinearGauge
Sortable
ModalView
Hierarchical Data Source
Button
FileManager
MaskedTextBox
View
Form
NavBar
Notification
Switch (Mobile)
SplitView
ListBox
DropDownTree
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
ColorPicker
Pager
Styling
Chat
MultiColumnComboBox
Dialog
DateRangePicker
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Accessibility
Effects
PivotGridV2
ScrollView
Switch
TextArea
BulletChart
Licensing
QRCode
ResponsivePanel
Wizard
CheckBoxGroup
Localization
Barcode
Breadcrumb
Collapsible
MultiViewCalendar
Touch
RadioButton
Stepper
Card
ExpansionPanel
Rating
RadioGroup
Badge
Captcha
Heatmap
AppBar
Loader
Security
TaskBoard
Popover
DockManager
FloatingActionButton
CircularGauge
ColorGradient
ColorPalette
DropDownButton
TimeDurationPicker
ToggleButton
TimePicker
BottomNavigation
Ripple
SkeletonContainer
Avatar
Circular ProgressBar
FlatColorPicker
SplitButton
Signature
Chip
ChipList
VS Code Extension
AIPrompt
PropertyGrid
Sankey
Chart Wizard
OTP Input
SpeechToTextButton
InlineAIPrompt
StockChart
ContextMenu
DateTimePicker
RadialGauge
ArcGauge
AICodingAssistant
SegmentedControl
+? more
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?