Telerik Forums
Kendo UI for jQuery Forum
6 answers
1.6K+ views
Hi there,

I have a grid with several custom numeric text box fields set up for inline editing. I need to set the initial value of some of the fields based on the current data. From what I've seen, the edit event is the place to do this. I'm able to set the initial value of the fields fine but when I save the row the values aren't being sent to the server. This tells me that the model data isn't being updated when I change the values but I can't figure out how to make that happen. I tried adding .change()  to the end of each e.container line as recommended by a forum post I found but that just threw errors and didn't help.

My grid definition is:

$("#HolesGrid").kendoGrid({
    editable: "inline",
    scrollable: false,
    columns: [
        {
            command: ["edit", "delete"],
            title: "Actions",
            width: "90px"
        },
        { title: "Number", field: "Number", type: "number", width: "80px", editor: numericNoDecimalEditor },
        { title: "Male Par", field: "MalePar", type: "number", editor: numericNoDecimalEditor },
        { title: "Female Par", field: "FemalePar", type: "number", editor: numericNoDecimalEditor },
        { title: "Male Rank", field: "MaleRank", type: "number", editor: numericNoDecimalEditor },
        { title: "Female Rank", field: "FemaleRank", type: "number", editor: numericNoDecimalEditor }
    ],
    dataSource: {
        schema: {
            data: "Data",
            total: "Count",
            errors: "Error",
            model: {
                id: "id",
                fields: {
                    id: { type: "number" },
                    CourseID: { type: "number", defaultValue: CourseID },
                    Number: { type: "number" },
                    MalePar: { type: "number", defaultValue: 5 },
                    FemalePar: { type: "number", defaultValue: 5 },
                    MaleRank: { type: "number" },
                    FemaleRank: { type: "number" }
                }
            }
        },
        transport: {
            read: {
                url: "/CourseEdit/GetHoles",
                contentType: "application/json",
                type: "POST",
                data: { courseID: CourseID }
            },
            create: {
                url: "/CourseEdit/CreateHole",
                contentType: "application/json",
                type: "POST"
            },
            update: {
                url: "/CourseEdit/UpdateHole",
                contentType: "application/json",
                type: "POST"
            },
            destroy: {
                url: "/CourseEdit/DeleteHole",
                contentType: "application/json",
                type: "POST"
            },
            parameterMap: function (data, operation)
            {
                return JSON.stringify(data);
            }
        },
        requestEnd: function (e)
        {
            if (e.type == "create" || e.type == "destroy")
            {
                // Update the Yardage list
                $("#YardagesGrid").data("kendoGrid").dataSource.read();
                $("#YardagesGrid").data("kendoGrid").refresh();
            }
        }
    },
    edit: function (e)
    {
        if (e.model.isNew())
        {
            // Find the next hole number
            var holes = this.dataSource.data();
            var lastNum = 0;
            for (var i = 0; i < holes.length; i++)
            {
                var thisNum = holes[i].Number;
                if (thisNum - lastNum > 1)
                {
                    break;
                }
                lastNum = thisNum;
            }
            var nextNum = lastNum + 1;
 
            e.container.find("input[name=Number]").data("kendoNumericTextBox").value(nextNum);
            e.container.find("input[name=MaleRank]").data("kendoNumericTextBox").value(nextNum);
            e.container.find("input[name=FemaleRank]").data("kendoNumericTextBox").value(nextNum);
        }
    }
});
 
function numericNoDecimalEditor(container, options)
{
    $('<input data-bind="value:' + options.field + '" name="' + options.field + '"/>')
      .appendTo(container)
      .kendoNumericTextBox({
          format: "n0",
          decimals: 0
      });
}
Any ideas how I can make this work?

Thanks,
Jason
Alex Hajigeorgieva
Telerik team
 answered on 11 Mar 2020
3 answers
804 views

Would it be possible to set custom width and height using CSS calc()?

The situation is the following: I have a UI which consists of a main area and a sidebar.

When I open the window I want to be able to center the window within the main area, without covering the sidebar. And in my case, the sidebar having 400px, I would like to be able to set the Kendo Window width: calc(100% - 440px) and add a position left of 20px. In this way I would have control on various types of layouts.

Thanks,

Andy

Dimitar
Telerik team
 answered on 11 Mar 2020
1 answer
436 views

     I'm trying to generate a PDF report and I need the charts I generate for my HTML for the PDF file. I'm trying to send the image data to the server but when I try to load it into an image object it fails. Hoping you can help me.

-- Code on client side

        kendo.drawing.drawDOM($("#ESChart"))
            .then(function (group) {
                return kendo.drawing.exportImage(group);
            })
            .done(function (data) {
                chartData = encodeURI(data);

                $.ajax({
                    method: "POST",
                    data: chartData,
                    url: "/Home/CreateFacilityReport" + location.search,
                })
                    .done(function (msg) {
                        alert(msg);
                    })
                    .fail(function (data) {
                        alert("Failed to load svg");
                    });
            });

 

-- Code on server side

        public ActionResult CreateFacilityReport(string FacilityId, string chartData)
        {

            string myData = HttpUtility.UrlDecode(chartData.ESChart);

            byte[] myBytes = Encoding.ASCII.GetBytes(myData);

            using (var ms = new MemoryStream(myBytes))
            {
                Image myImage = Image.FromStream(ms, true, false);      <---- Blows up here and gets a 'Parameter is not valid'
                myImage.Save("/ESChart.png");
            }
}


Ivan Danchev
Telerik team
 answered on 10 Mar 2020
3 answers
52 views

Hi,

Is it possible to render the Pager of a ScrollView in the footer of its parent View? I want to give the user a visual clue that there are more items to scroll through and on which page they are currently at. Basically I want the pager to be visible at all times and that the content of the page in the ScrollView stays scrollable vertically.

 

Kind Regards,

Marco

Aleksandar
Telerik team
 answered on 10 Mar 2020
4 answers
2.5K+ views

I am using Javascript and have a kendo drop down list like so:

$("#ddl).kendoDropDownList({
dataTextField: "name",
dataValueField: "id",
filter: "contains",

dataSource: {
    data: [
      {id: 1, name: "apples"},
      {id: 2, name: "oranges"},
      {id: 3, name: "apples2"},
      {id: 4, name: "oranges2"}]
  }
});

 

As a user, I open the drop down list, type "apples" into the filter, and select "apples".  Then I activate a function (though clicking a button), that attempts to programmatically change the drop down list to the "oranges" value (index 1, id 2).  However, the filterInput is still active, and attempts to set the drop down list to index 1 instead sets it to index 1 of the filtered drop down list ("apples2").

I know I can access the filterInput programmatically.  How can I programmatically clear the filterInput and set the drop down list value to "oranges"?

Dimitar
Telerik team
 answered on 10 Mar 2020
10 answers
630 views
How can I implement drag/drop of external items onto the Scheduler control to create new events?
Ianko
Telerik team
 answered on 10 Mar 2020
4 answers
2.2K+ views

Hi

In our project, we need a footer template design in the Kendo grid. So we have used a Footertemplate property inside the columns.

columns: [{
field: "Name",
title: "Name",
headerTemplate: "Name <span class='fa fa-gbp' onclick='Showpopup(false,this,120); return false'></span>",
footerTemplate: "<div class='footer_Template'><div id='Namecount' style='display:none;'>Count = #: count #</div></div>"
}],

For the aggregate function, we have added the icon in the header template and added the aggregate options dynamically inside the popup window. During click of the icon, we display the aggregate options on a popup window.

The Footer template aggregate labels are initially set as display: none (as mentioned above). Once the aggregate option is selected from the header popup the footer template aggregate labels style will be display: block.

The above process is working fine before sorting of the column values but while clicking the sorting the footer template aggregate labels goes back to the initial stage (all the design style changes to display: None)


We need the same functionality & process to take place as on the video on our application too.
Video Link

Attached a demo project for your reference.

Demo Project (The link will be valid for 6 days).

Dev
Top achievements
Rank 1
Veteran
 answered on 10 Mar 2020
1 answer
190 views

Hello, is there a way to implement load on demand on spreadsheet? or load data while scrolling?

I'm using kendo spreadsheet to display big files, with no edit/save functionality. 

Loading the entire file on json can be very difficult when the json size is 30MB+.

Martin
Telerik team
 answered on 10 Mar 2020
1 answer
108 views

When I use frozen columns I have a white box below the columns. But if I change the size of the browser by at least 1 pixel, this bug disappears

 

I tried to fix this bug in this way

var lockedGrid = (document.getElementsByClassName("k-grid-content-locked"))[0];

lockedGrid.style.height = 'auto';

 

It works. But if I use pagination, filtering or sort then this white box appears again.

Kendo version in project v2016.2.607

 

Ivan Danchev
Telerik team
 answered on 09 Mar 2020
6 answers
174 views
Hi,
I'm having troubles replicating your examples.
I have scatter charts and I need to do the following:
1) setup a "selection" area so the user would be able to select some area on the graph.  It seems that "categoryAxis" is not valid for scatterline, but there's no mention for this in the docs.  In addition, why would "scatter/scatterline" should be missing the "select" feature? It makes no sense, since it's a great UI tool for any Cartesiangraph at least.

2) zoom in and out. I've tried replicating the demo (http://demos.telerik.com/kendo-ui/scatter-charts/pan-and-zoom) but it seems not to work for me (http://plnkr.co/edit/rbpfQOEub6FgiAYmz4F4?p=preview).  Each time I do "setOptions" it deletes all the data from the chart.

3) Using the data in the options: I would like to use the data inside the options - for instance, my data points look like this: 

{x: Xi, y: Yi, label: someLabel, group: groupName}

so I'd like to add the label to the tooltip when hovering over points in the graph. How can this be achieved using the tooltip template? 
Another thing is to set certain values according to the data.  Again, my data is made of an array of objects.  How can I set some conditions according to the data min/max for instance? How can I access the data while setting up the options. i.e.:
graphOpts = {
dataSource: dataSource,
xAxis: {
min: data.min,
max: data.max,
title: {text: "Values #=data.view().min=# to #=data.view().max=#}
}
}
Such that the title would show the min and max values of the axis, and the axis will be set according to the min and the max of the data (that's just an example of course... there can be many uses for this).

Thanks in advance.
{x: Xi, y: Yi, label: someLabel, group: groupName}
{x: Xi, y: Yi, label: someLabel, group: groupName}
{x: Xi, y: Yi, label: someLabel, group: groupName}
Viktor Tachev
Telerik team
 answered on 09 Mar 2020
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?