Telerik Forums
Kendo UI for jQuery Forum
2 answers
913 views

Hi,

 

 

I'm experimenting with the kendo Grid at the moment and have been creating something that creates a grid and sends a callback down a chain when the grid's dataBound event is fired. However, a problem that's arisen is there're multiple callbacks trying to link onto the callback event at different points in the chain, like so:

function createGrid(gridOpt) {
    return new Promise(function (resolve, reject) {
        gridOpt.dataBound = function () { resolve(); };
        $$gridElement.kendoGrid(gridOpt);
    });
}
 
function foo() {
    var gridOpt = getGridOpt();
    createGrid(gridOpt).then(function () {
        console.log('important thing 2');
    });
}
 
function getGridOpt() {
    return {
        dataBound: function () {
            console.log('important call 1');
        },
        //other grid stuff
    };
}

 

However, this would mean that the second dataBound assignation would override the first.

After initialisationyou can bind events through $$gridElem.data('kendoGrid').bind('dataBound', function(){});

I can't use this in this case, as the dataBound event occurs directly after initialisation.

 

One option would simply be to check if there is already an existent function and create a wrapper function that will call both functions. This would work, but it's not exactly best practice, and I'm sure there's a way to do it properly and I just missed something.

Is there any way to bind multiple events to the grid before initialisation?

Max
Top achievements
Rank 1
 answered on 02 Jul 2020
4 answers
438 views
Hello

Please check this demo: http://dojo.telerik.com/IziME/15
If you double click the event, and click "cancel", the event disappears.

Regards,

Pawel
Petar
Telerik team
 answered on 02 Jul 2020
11 answers
466 views
I'm using a MultiSelect  as input into my scheduler widget. Works great for the input piece but when I go to edit the event the Multiselect widget won't update with multiple selection it will however update if only a single selection was picked (originally). I'm passing it a coma delimited string via the Model. Do I need to pass it a json string or object? See my code snipet below.

@(Html.Kendo().Scheduler<Mvc45CRApp.Areas.Reports.ViewModels.TaskViewModel>()
    .Name("scheduler")
    .Date(new DateTime(DateTime.Now.Ticks))
    .StartTime(new DateTime(DateTime.Now.Ticks))
    .Height(600)
    .Views(views =>
    {
        views.DayView(dailyView=>dailyView.AllDaySlot(false));
        views.WeekView(weekView => weekView.AllDaySlot(false));
        views.MonthView(monthView => monthView.Selected(true));
    })
    .Timezone("Etc/UTC")
    .Resources(resource =>
         {
            resource.Add(m => m.ReportID)
                .Title("Report Name")
                .Multiple(true)
                .DataTextField("ReportName")
                .DataValueField("ReportID")
                .DataSource(source =>
                {
                    source.Read(read =>
                    {
                        read.Action("GetReports", "Schedule", new { area = "Reports" });
                    }); 
                });
            resource.Add(m => m.ContactID)
                .Title("Contacts")
                .Multiple(true)
                .DataTextField("ContactName")
                .DataValueField("ContactID")
                .DataSource(source => {
                    source.Read(read => 
                    {
                        read.Action("GetContacts", "DropdownMenus", new { area = "Shared" });
                    }); 
                });
         })
        //.Editable(e => e.TemplateId("editor"))
        .DataSource(d => d
        .Model(m =>
        {
   
            m.Id(f => f.TaskID);
            m.Field(f => f.Title).DefaultValue("No title");
            m.Field(f => f.OwnerID).DefaultValue(1);
            m.Field(f => f.Title).DefaultValue("No title");
        })
        .Read("Read", "Schedule")
        .Create("Create", "Schedule")
        .Destroy("Destroy", "Schedule")
        .Update("Update", "Schedule")
    )
)
 IQueryable<TaskViewModel> tasks = _db.SCHEDULED_EVENT.ToList().Select(task => new TaskViewModel()
            {
                TaskID = task.SCHEDULED_EVENT_ID,
                Title = task.NAME,
                //Specify the DateTimeKind to be UTC
                Start = DateTime.SpecifyKind(task.DTSTART, DateTimeKind.Utc),
                End = DateTime.SpecifyKind(task.DTSTART, DateTimeKind.Utc),
                Description = task.DESCRIPTION,
                RecurrenceRule = task.RRULE,
                ReportID = "1,2",  // this won't update the multiselect widget
                ContactID = "2",  // passing single item updates the widget (works great)
                //RecurrenceException = task.RecurrenceException,
                //RecurrenceID = task.RecurrenceID,
                OwnerID = task.USER_ID
            }).AsQueryable();


            return Json(tasks.ToDataSourceResult(request));





Ianko
Telerik team
 answered on 02 Jul 2020
8 answers
2.5K+ views

Hi

I'm using a grid to show results from a search. Also I included the child grid for the details that shows in the detailInit event. The thing is if I change the search criteria the grid loads perfectly fine but once you click to see the details it shows the details from previous result.

I tired this and didn't work:

requestEnd: function () {
var grid = $("#grid").data("kendoGrid");
grid.refresh();
},

Also tried this:

$('#grid').data("kendoGrid").unbind('change')

With the "command" column works with unbind().click(...) but no with in de detailinit.

Thank you in advanced

Priyank
Top achievements
Rank 1
 answered on 01 Jul 2020
1 answer
224 views

Hello, I have a similar situation like here Confirmation on row selection, however I work in an AngularJS environment, so I can't work with the suggested solution directly.

$("#Grid tbody").on("mousedown", "tr", function (e) {
    var ok = confirm("Change selection?");
  
    if (ok) {
        $("#Grid").data("kendoGrid").select(this);
    }
});

 

I suppose I need to wrap it into an angular directive somehow?

 

 

 

Alex Hajigeorgieva
Telerik team
 answered on 01 Jul 2020
1 answer
185 views

Hello,

Not sure if i am posting in the right place...

Like the title says i am trying to show tooltip only on rows that exist in my array. I have a kendo grid with a checkbox, whichever checkbox the user clicks on i am storing that row in my $ctr.selectedRows[];
The example i have below, the tooltip shows up on all rows when they go back to their selection grid. I am either missing something, doing this wrong, or both.
        $("#grid").kendoTooltip({
          show: function(e){
            $ctr.selectedRows.forEach((element) => {
       this.content.parent().css("visibility", "visible");
            })
          },
          hide:function(e){
            this.content.parent().css("visibility", "hidden");
          },
          filter: "td:nth-child(1)", //this filter selects the first column cells
          position: "center",
          content: function(e){
            var dataItem = $("#grid").data("kendoGrid").dataItem(e.target.closest("tr"));
            var content = "Currently we have " + dataItem.UnitsInStock + "  " + dataItem.ProductName +"in stock";
            return content;
          }
        }).data("kendoTooltip");

Martin
Telerik team
 answered on 01 Jul 2020
1 answer
792 views

Hello,

Like the title says i am trying to show tooltip only on rows that exist in my array. I have a kendo grid with a checkbox, whichever checkbox the user clicks on i am storing that row in my $ctr.selectedRows[];

The example i have below, the tooltip shows up on all rows when they go back to their selection grid. I am either missing something, doing this wrong, or both.

        $("#grid").kendoTooltip({
          show: function(e){
            $ctr.selectedRows.forEach((element) => {
       this.content.parent().css("visibility", "visible");
            })
          },
          hide:function(e){
            this.content.parent().css("visibility", "hidden");
          },
          filter: "td:nth-child(1)", //this filter selects the first column cells
          position: "center",
          content: function(e){
            var dataItem = $("#grid").data("kendoGrid").dataItem(e.target.closest("tr"));
            var content = "Currently we have " + dataItem.UnitsInStock + "  " + dataItem.ProductName +"in stock";
            return content;
          }
        }).data("kendoTooltip");

 

Martin
Telerik team
 answered on 01 Jul 2020
3 answers
701 views

Hi,

 

I've updated several items within two of the column fields in my kendo grid.  Of course, the data is pulled from a DB via a stored procedure in Entity Framework.

I am using the multi - true and search - true attributes for the filterable option in my grid.  The new values are there; however, when I select a value, it does not filter.  If I use just filterable: true without the multi feature, it does in fact filter.

I've tried to to reset using the setDataSource method and numerous other methods.  Is there a way to reset or perhaps clear the old values.

Thank you

Georgi
Telerik team
 answered on 01 Jul 2020
2 answers
5.4K+ views
I have a kendo grid contains a list of people.  I would like to add a kendo tooltip to each row so that, in essence, a detail view for the selected row will be shown in the tooltip.  To do this I need to call a web service method when the tooltip is loaded, passing in the key value of the row, then I use a template to layout the content of tooltip.  I'm a bit stuck trying to figure out where to pass the key value of the row to the tooltip...  I'm doing this in pure javascript, so no server-side code is used at all.  The web service call to get the details must be a POST, not a GET, if that makes any difference...?

Here's what I have, which isn't even close to working (the grid populates fine, but the tooltips aren't working):

$grid.kendoGrid({
 dataSource: dsPeople,
 scrollable: { virtual: true },  
 height: 600,
 resizable: true,
 selectable: "row",
 pageable: true,
 dataBound: function(e) {
  $("#grid").find("tr").kendoTooltip({
   content: People.GetPerson(e.data.Xref, 6012, '127.0.0.1', 'netname'),
   width: 680,
   height: 120,
   position: "bottom",
  });
 },
 columns: [
  { field: "FullName", title: "Name", groupable: false, resizable: true },
  { field: "StreetAddress", title: "Address", groupable: false, resizable: true },
  { field: "Sex", title: "S", groupable: true, resizable: false, width: 30 },
  { field: "Race", title: "R", groupable: true, resizable: false, width: 30 },
  { field: "Height", title: "Ht", groupable: false, resizable: false, width: 40 },
  { field: "Weight", title: "Wt", groupable: false, resizable: false, width: 40 },
  { field: "Age", groupable: true, resizable: false, width: 40 },
  { field: "DOB", groupable: false, resizable: false, format: "{0:MM/dd/yyyy}", width: 90 },
  { field: "Xref", title: "XREF", groupable: false, resizable: true, width: 70 }
 ],
 mobile: true
});

Can anyone point me to an example where something like this is being done?

Thanks!
Eddie
Misho
Telerik team
 answered on 01 Jul 2020
1 answer
84 views

Hello!

I'm struggling with a problem when I am trying to build a chart with data, somehow the line doesn't overlap. 

Of course I am using the stack function as false by default ($seriesDefaults = new \Kendo\Dataviz\UI\ChartSeriesDefaults();
        $seriesDefaults->type($chartType)->stack(false)), but I see no difference.

Here is the data which I am using to fill the chart.

I think I miss something.

Any suggestion will help.

Thank you!

Regards,
Alexandru - Paul

 

 

Nikolay
Telerik team
 answered on 01 Jul 2020
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
MultiColumnComboBox
Chat
DateRangePicker
Dialog
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Effects
Accessibility
PivotGridV2
ScrollView
BulletChart
Licensing
QRCode
ResponsivePanel
Switch
Wizard
CheckBoxGroup
TextArea
Barcode
Breadcrumb
Collapsible
Localization
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
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Iron
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Iron
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?