Unplanned
Last Updated: 23 Sep 2022 14:02 by Gabriel
Created by: Gabriel
Comments: 0
Category: Grid
Type: Bug Report
1

Bug report

DataSourceResult.php does not work with php 8.1.

TicketID:
1571981

Environment
**Kendo UI version: [all]
Browser: [all]

Unplanned
Last Updated: 22 Aug 2022 15:15 by ADMIN

Hi,

As stated in changelog of version 2022.2.802  'state' prefix removed from CSS state classes.

But php wrappers do not reflect these changes. For example, wrapper for TabStripItem still requires old class name, as a result TabStrip selection is broken:


<?php

namespace Kendo\UI;

class TabStripItem extends \Kendo\SerializableObject {
    public function createElement() {
        $element = new \Kendo\Html\Element('li');

        if ($this->getProperty('selected')) {
            $element->attr('class', 'k-state-active');
        }

Unplanned
Last Updated: 23 Jun 2022 11:29 by RICHARD
The Grid's row reordering functionality is missing from the PHP wrappers.
Unplanned
Last Updated: 03 May 2022 11:24 by ADMIN
Created by: Matthew
Comments: 1
Category: UI for PHP
Type: Feature Request
0

Give users the ability to add custom editors in the Kendo Grid using the existing PHP library. It would be extremely helpful to create the edit control using existing functions (e.g. DateTimePicker) and pass it into the column so that users can leverage all of the existing PHP calls to set up their component and pass it into the grid column. 

For example:

$datePicker= new \Kendo\UI\DateTimePicker('edScheduleDt');
$datePicker->componentType('classic')
  ->interval(15)
  ->dateInput(true)
  ->change('myOnChange')
  ->close('myOnClose')
;

$scheduleDateCol = new \Kendo\UI\GridColumn();
$scheduleDateCol ->field('ScheduleDate')
  ->title('Scheduled')
  ->width(214)
  ->editor($datePicker)
  ->format('{0:M/d/yyyy h:mm tt}')
;

Unplanned
Last Updated: 04 Nov 2019 15:41 by ADMIN

Dear support team

 

I have an interesting phenomenon. We are using a MultiSelect widget with remote data binding. In theory, the data looks like this:

Key: 099

Value: Test1

Key: 100

Value: Test2

etc.

I can select all values just fine and they are posted to the form on the receiving end. When reloading the form, we pre-populate the selected items, by calling ->setValue() with an Array of strings: 099,100.

However, the generated Javascript code for the multiselect will change that to [99,100]. So the 099 will not get selected when shown.

Is this something I can avoid? Do I need to specify anything special for the Key column (so far I have only specified the name of the field and marked it as an IDcolumn).

 

Here is the generated javascript code, as you can see, the value is set to 99, but gets passed in the PHP array as '099':

 <select id="berufsgruppeMultiSelect[]" name="berufsgruppeMultiSelect[]" style="width:500px;"></select><script>jQuery(function(){jQuery("#berufsgruppeMultiSelect\\[\\]").kendoMultiSelect({"dataSource":{"type":"odata-v4","serverFiltering":true,"serverSorting":true,"serverPaging":true,"transport":{"read":{"url":function(data) {return "http://aiislab1.bsl.ch.almanid.com:8180/iswebservice/OData4Service.svc/Attributes('687')/CTVRecords?lang=en&$select=V_Long&SESSIONID=" + encodeURIComponent(cookieSessionID) + "";},"contentType":"application\/json;odata.metadata=minimal","dataType":"json","type":"GET"},"parameterMap":function(options, type) {
if (type === 'read') {
if (options.filter) {
for(var index in options.filter.filters) {
var Filter = options.filter.filters[index];
Filter.value = boolean2string(Filter.value);

if ($.isArray(Filter.filters)) {
for(var arrayIndex in Filter.filters) {
var ArrayFilter = Filter.filters[arrayIndex];
ArrayFilter.field = 'tolower(' + ArrayFilter.field + ')';
ArrayFilter.value = ArrayFilter.value.toLowerCase();
}
} else {
Filter.field = 'tolower(' + Filter.field + ')';
Filter.value = Filter.value.toLowerCase();
}
}
} else {
                    options.filter = {logic: 'and', filters: [{field: 'tolower(Language)', operator: 'contains', value: 'en'}]};
                }
if (options.sort) {
var sortCount = 0;
for(var index in options.sort) {
var Sorter = options.sort[index];
sortCount = 1;

}
}
if (typeof sortCount === 'undefined' || sortCount === 0) {
options.sort = [{field: 'V_Long', dir: 'asc'}];
}
}
return kendo.data.transports['odata-v4'].parameterMap(options, type);}
},"schema":{"model":{"fields":[{"field":"Key"},{"field":"V_Long"}],"id":"Key"}}},"dataTextField":"V_Long","dataValueField":"Key","value":[99],"valuePrimitive":true,"filtering":function (e) {
            if (e.filter) {
                var value = e.filter.value
                var newFilter = {
                    logic: 'and',
                    filters: [
                        { field: 'tolower(Language)', operator: 'contains', value: 'en' },
                        {
                            logic: 'or',
                            filters: [
                                { field: 'id', operator: 'contains', value: value },
                                { field: 'V_Long', operator: 'contains', value: value }
                            ]
                        }
                    ]
                }
                e.sender.dataSource.filter(newFilter)
                e.preventDefault()
            }
            e.preventDefault()
        },"placeholder":"alle Berufsgruppen","itemTemplate":"#: id# (#: V_Long#)","tagTemplate":"#: id# (#: V_Long#)"});});</script>

 

Thank you for your advice.

Yours,

Ronny