Telerik Forums
Kendo UI for jQuery Forum
3 answers
2.5K+ views
I have a grid data model defined like this:

                var griddatamodel = kendo.data.Model.define({
                    id: "RequestId",
                    fields: {
                        Status: { type: "string", editable: false },
                        Priority: { type: "number", editable: true, validation: { min: 1, max: 9999 } }
                    }
                });

The datasource retrieves the data based on a few drop down lists. I have a function that returns an CanChangePriority Boolean based on the values of the drop down lists. I want to be able to make the Priority field editable depending on the CanChangePriority Boolean, and update the editable flag as the drop down selection is changed. Is there a way to do that?

Doni
Samra
Top achievements
Rank 1
 answered on 25 May 2017
2 answers
801 views

I have a kendo Grid with an editor column that uses a combobox whose datasource is set to an object array. Everything works fine except when a user sets enters a custom value into the combobox (for example:'abc') that doesn't match any of the datasource options. The combobox displays undefined when tabbing off of it or moving focus out of the combobox.  I have tried to handle this in the change event of the combox box by adding the custom value to the datasource (using the Telerik online example for adding custom values), but that doesn't appear to work.

Below is my html file code:

<!DOCTYPE html>
<html>
<head>
    <title></title>
<meta charset="utf-8" />
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.2.504/styles/kendo.common-material.min.css" />
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.2.504/styles/kendo.material.min.css" />
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.2.504/styles/kendo.material.mobile.min.css" />

    <script src="https://kendo.cdn.telerik.com/2017.2.504/js/jquery.min.js"></script>
    <script src="https://kendo.cdn.telerik.com/2017.2.504/js/kendo.all.min.js"></script>

</head>
<body>
    <div id="mappingGrid"></div>
    <script>



    //$(document).ready(function () {

       //capture vars


        var mGrid = $("#mappingGrid").kendoGrid({

                dataSource: {

                schema: {
                        model: {
                           // id: "Id",
                        fields: {
                         //   Id: { editable: false, nullable: false },

                            CustomFunction: { defaultValue: { Value: "0", Name: "" } },



                        }
                        }
                    },

            },
            //   batch:true,

            pageSize: 10,
            autoBind: false,
            height: 300,
              width: 300,
           
            scrollable: true,
            sortable: true,
            filterable: true,
            editable: true,
        //     serverFiltering: true,
            toolbar: ["create"],
            columns: [
                        { field: "CustomFunction", title: "Custom Function", editor: customFunctionEditor, template: "#=CustomFunction.Name#" },

                      { command: [{ name: "destroy", text: "" }], title: "&nbsp;", width: "100px" }],



        });
   


            function customFunctionEditor(container, options) {
                $('<input id="CustomFunction" name="CustomFunction">')
                    .appendTo(container)
                    .kendoComboBox({
                        dataTextField: "Name",
                        dataValueField: "Value",
                        change: onComboBoxChange,
                        //       autoBind: abind,
                        dataSource: [
                                    { Name: "Add", Value: "1" },
                                    { Name: "Subtract", Value: "2" },
                                    { Name: "Multiply", Value: "3" },
                                    { Name: "Divide", Value: "4" }
                        ],

                    }).appendTo(container);

            }


            function DisplayError(xhr) {
                var msg = JSON.parse(xhr.responseText);
                errornotification("Error", msg.Message);
                // alert(msg.Message);
            }



            function onComboBoxChange(e) {
                var combo = e.sender;

                var comboText = combo.text();
                // check if new value is a custom one
                if (!combo.dataItem()) {


                    var dataSource = combo.dataSource;
                    dataSource.add({
                        Value: combo.text(),
                        Name: combo.text()
                    });

                    dataSource.one("sync", function () {
                        combo.select(dataSource.view().length - 1);
                    });

                    dataSource.sync();


                }

            }
        });

    </script>
</body>
</html>

 

 

David
Top achievements
Rank 1
 answered on 24 May 2017
1 answer
332 views

Hello,

 

Can we have tooltip for command Buttons with images

@(Html.Kendo().ToolBar()
.Name("ToolBar")
.Resizable(false)
.Items(items =>
{
items.Add().Type(CommandType.Button).ImageUrl(Url.Content("~/Images/Save_new.png")).Id("saveBtn").Click("SaveEntry");

})

 

Thanks

 

Anamika

Ivan Danchev
Telerik team
 answered on 24 May 2017
1 answer
266 views

I have a grid with editable  when the cell, I make the with it, but it will close immidiately, it is work with version   but not work with 2017.2.504

<script>
  var ops = [ { Value: "Match", Text: "Match" },
                { Value: "Any", Text: "Any" }];
  var operator;
   function changeOperator(e, obj, operator){
     
     e.container.find("input[name='oper']").kendoDropDownList({
                        optionLabel: "Select",
                        dataTextField: "Text",
                        dataValueField: "Value",
                        dataSource: operator          
                    });
                  
                        
    }
$("#grid").kendoGrid({
  columns: [
    { field: "oper"},
    { field: "val" }
  ],
  dataSource: {
    data: [
      { id: 1, oper: "Match", val: 30 },
      { id: 2, oper: "Match", val: 33 }
    ],
    schema: {
      model: { id: "id" }
    }
  },
  editable: "incell",
  edit: function(e) {
    operator = [ops[0], ops[1]];
    changeOperator(e, "", operator);
  },
  
});
</script>

here is my code in dojo

http://dojo.telerik.com/iguti/2

anyone could tell me why?

thanks a lot.

 

 

Preslav
Telerik team
 answered on 24 May 2017
3 answers
947 views

Hi,

Possibly a stupid qs, but I'm wondering if it is possible to configure the insertFile tool in the editor to allow upload of files from a local drive, rather than just giving the option to insert a url to a file?

Currently the tool only gives me the option to insert a url.
We've implemented a bespoke attachment upload option which runs alongside the Kendo Editor, in a different app, but I'd prefer to avoid trying to redevelop it to fit into this app.

 

Cheers.

Bozhidar
Telerik team
 answered on 24 May 2017
9 answers
1.6K+ views
Hey everyone,

we've a TreeView with nodes that can contain child nodes which can contain child nodes and so on ....

How can we make a client-side sort, so that all levels of nodes are sorted ascending/descending? The normal sort setting of the datasource doesn't work properly  because it only sorts the top level of the nodes but not the child levels.

Any advice welcome ;)

Regards,
Michael
Ivan Danchev
Telerik team
 answered on 24 May 2017
3 answers
376 views
Hello,

I would like to implement a line chart which gives the user the opportunity to activate and to deactivate the crosshair with a drop-down menu. By default, the crosshair should not be visible.

The following code shows a sample script for the chart:

<div id="chart"></div>
 
<script type="text/javascript">
    $("#chart").kendoChart({
        categoryAxis: {
            categories: ["2012", "2013", "2014"],
            crosshair: {
                color: "green",
                width: 2,
                visible: false
            }
        },
        series: [{
            type: "line",
            data: [1, 2, 3]
        }]
    });
 
    function displayCrosshair() {
        var chart = $("#chart").data('kendoChart');
        chart.options.categoryAxis.crosshair.visible = true;
        chart.refresh();
    }
 
    function hideCrosshair() {
        var chart = $("#chart").data('kendoChart');
        chart.options.categoryAxis.crosshair.visible = false;
        chart.refresh();
    }
</script>

The crosshair remains invisible after calling displayCrosshair. The function only works properly if crosshair.visible has the value true:​

<script type="text/javascript">
    $("#chart").kendoChart({
        categoryAxis: {
            categories: ["2012", "2013", "2014"],
            crosshair: {
                color: "green",
                width: 2,
                visible: true
            }
        },
        series: [{
            type: "line",
            data: [1, 2, 3]
        }]
    });
</script>

How can I avoid this?
Stefan
Telerik team
 answered on 24 May 2017
1 answer
607 views

My scheduler is completely non-editable. 

But I'd like the user to be able to click the little event title and get a nice modal window showing all of the details. (Similar to how editing works now, but read only)

What's the best way to go about this?

I *could* set editable to true and then create a custom edit template (that is actually read only). But then I'm left with slapping down all of the new events like delete and drag/drop.

Or perhaps I could keep the scheduler read only, use a template for the little displayed event, and roll my own popup for the details. the 

I'm starting this tomorrow and I'd love to know if anyone has some advice for a preferred direction.

Thanks!

 

Plamen
Telerik team
 answered on 24 May 2017
4 answers
393 views

How do I grab items beyond the currently defined "$('#listview').data('kendoMobileListView').dataSource.data()"?

I'm writing a feature to do a batch action with selected items of a mobile listview. The kendo.data.Datasource has data loaded in remotely, and we define the following:

serverPaging: true,
pageSize: 10

The schema.total in my test case is 55. Each dataItem has a property 'Select' that has defaultValue: undefined, and is set to true/false defined by whether user selects or de-selects the item on click. I want to avoid having to create a list to hold objects and add/remove items based on whether a user selects/deselects said items, which is why i wanted to just toggle this property back and forth on click. I want the user to be able to scroll through all 55 items and select items as desired. I also want to do a 'select all' feature where the all items on the listview are selected/deselected and also allow individual toggling post 'select/de-select all' with the same 'Select' property modification in mind. Then only when the user selects to do the batch action, detect all dataItem's Select value and send those items to the function that handles the batch action.

My observations (correct me if I'm wrong):

(var dataItemList = $('#listview').data('kendoMobileListView').dataSource.data() for the purpose of brevity)

1)  dataItemList is redefined every 1/2 pageSize. So initial list is dataItemList[0] thru dataItemList[9], then next time it is defined (the return value of $('#listview').data('kendoMobileListView').dataSource.data()), it's dataItemList[5] thru dataItemList[14] (obviously where dataItemList[5] is at index 0 and dataItemList[14] is at index 9 of the new list), and so on...

2) property modifications of an item in dataItemList are retained, even after dataItemList is redefined. This leads me to believe all items in the datasource are saved somewhere and I just don't know how to access it. For example if i set dataItemList[0].Select = true, then scroll to a point on the list where dataItemList[0] isn't on dataItemList, then scroll back (so I can read it's properties), dataItemList[0].Select == true versus the default 'undefined' value.

3) I can save items to a manually generated object with key-value pair and use the key to remove or add the object to the list when a click is detected, or if the 'select all' button is clicked, load in new items to the list with itemChange event, but this will be a clumsy implementation at best for the manual select/deselect functionality post-'select all' for items outside of ones currently represented by dataItemList.

To clarify on my question:

I want to access those dataItems on the kendoMobileListView that aren't returned by dataSource.data(), but I have to keep virtual scrolling and the datasource is loaded from a remote source. Is this possible? If so, how?

Let me know if you need further clarification/example. Thanks in advance.

Gary
Top achievements
Rank 1
 answered on 24 May 2017
1 answer
206 views

Hello,

I have a grid that supports a model.  But I want to generate different columns renderings depending on a value selected.
eg.
One time the value column needs to be a text box, numeric text box, color selector.

I've managed to do so with everything in java script.  But now I want to move the column definition into my database and return a json array butI'm facing one problem and that is the editor property.

The grid is generated if I leave all the editor properties empty.  But when I want to use one the grid isn't generated and I'm not getting any javascript errors.
(The editors exists)

This is what my service is returning:
[{"field":"ValidFrom","title":"Valid from","width":"75px","format":"{0:dd/MM/yyyy}"},{"field":"ValidTo","title":"Valid to","width":"75px","format":"{0:dd/MM/yyyy}"},{"field":"Item","title":"Retailer loyalty score","width":"125px"},{"field":"Value","title":"Color","width":"75px","editor":colorEditor,"template":"<div style='background-color: #=Value#;'>&nbsp;</div>"},{"field":"RangeMin","title":"Min score","width":"75px"},{"field":"RangeMax","title":"Max score","width":"75px"},{"field":"Active","title":"Active","width":"50px","editor":customActiveEditor,"attributes":{"style":"text-align: center"},"template":"<div align=center><input style=\"display:none;\" id=\"Active_#=RuleID#\"   type=\"checkbox\" #= Active ? \"checked='checked'\" : '' # class=\"k-checkbox chbxItem\"  /><label class=\"k-checkbox-label\" for=\"Active_#=RuleID#\"</label></div>\r\n"}]

 

Tsvetina
Telerik team
 answered on 23 May 2017
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
Drag and Drop
Application
Map
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
DropDownTree
ListBox
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
Styling
ColorPicker
Pager
Chat
MultiColumnComboBox
Dialog
DateRangePicker
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Accessibility
Effects
Licensing
PivotGridV2
ScrollView
Switch
TextArea
BulletChart
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
TimePicker
FloatingActionButton
CircularGauge
ColorGradient
ColorPalette
DropDownButton
TimeDurationPicker
ToggleButton
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
SmartPasteButton
PromptBox
SegmentedControl
LLM Kit
+? more
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?