Telerik Forums
UI for Blazor Forum
0 answers
38 views

I don't understand what is going on.  I am sure I am missing something obvious.  

 

I am trying to setup my first Gantt Chart.   It is my understanding that this is setup in 2 pieces. The tree and timeline.   I am able to load the tree.  It comes up and I am able to see hierarchy.

 

Example of Tree..

I get data in a hierarchy. I assign Parent Ids to each record. I am ok with this. 

 

What I am struggling with is when I tried to add the GanttViews and it blows. up

 

Here is my initial load... I have not technically loaded any data. So I see the dates and columns all look good. 

 

During the loading of the data I get this error..

 

Clearly I am missing something.  I just don't know what.  

 

The only thing I have added between it loading the Tree and trying to load the timeline is ...


<GanttViews>

    <GanttWeekView></GanttWeekView>
    <GanttMonthView ></GanttMonthView>

</GanttViews>

        

 

Here is how I defined the start of the Gannt Control.

 


    <TelerikGantt Data="ServiceOrderData" 
                   Width="100%" 
                  Height="80vh"
                  ParentIdField="@nameof(ServiceOrder.ParentID)"
                  @ref="ServiceOrderRef"        
                  HasChildrenField=""
                  EnableLoaderContainer="true"
                  IdField="@nameof(ServiceOrder.ServiceOrderPk)"
                  StartField="@nameof(ServiceOrder.ServiceDate)"
                  EndField="@nameof(ServiceOrder.ServiceDate)"
                  TitleField="@nameof(ServiceOrder.WorkType)"
                  OnEdit="@OnEdit"                
                 
                  >

 

 

I clearly did not populate something that the Timeline needs. I am not sure what. It looks like all I need is the Start, End and TItle.  But I have tried different variations of that and it still fails. 

 

I am confused. Any suggestions? 

 

 

 

Abby
Top achievements
Rank 1
Iron
 asked on 21 Jan 2025
1 answer
42 views

Probably a bit of a vague question, but is there any way to make the “TabStrip” component tab texts appear vertically or is it planned to support this behavior sometime? I've tried modifying it a bit via css but I'm having problems with containers. I think I'm probably not using the right component for what I want to achieve... but if it helps anyone who is looking for the same idea it is already reflected here.

Hristian Stefanov
Telerik team
 answered on 21 Jan 2025
1 answer
51 views

The default visuals for the DialogFactory are distractingly different (aka ugly) from my application visuals.  Is there any way to modify the predefined dialogs?  I think they're a great idea and they do save me time on creating a custom component, but they seem visually inflexible?

Rob.

 
Hristian Stefanov
Telerik team
 answered on 21 Jan 2025
1 answer
30 views

Do we have the ability to differentiate which button is clicked on the Edit Recurring Appointment window?

I'm using a custom edit form, but I don't know if there is a way to tell which button is selected on this window. The default form can differentiate the button chosen but I do not find anything in the args that tells me the selection.

Any help would be appreciated.

 

Hristian Stefanov
Telerik team
 answered on 21 Jan 2025
0 answers
37 views

In the attached solution I have two Multi Column Headers - Product (containing ID and Product Name) and Details (containing In Stock, Unit Price, Discontinued and Release Date).  

I want the Excel download to reflect this, and to have a black border around all cells.

By default the multi column headers just take a single cell, it looks like this:

If I use worksheetExporter.MergeCells to merge the Product and Details cells, it looks better, but the border is gone from the right hand side of Details.

Can you advise how I can see the cells merged correctly but retain the border?

Thanks in advance,

Dean

 

Dean
Top achievements
Rank 1
Iron
Iron
Veteran
 asked on 20 Jan 2025
1 answer
34 views

On my previous site, I used the TinyMCE editor, which had a useful feature that allowed me to add and update a Table of Contents (TOC) at the top of the text I entered. I wonder if there is similar support for adding a TOC when using the TelerikEditor with Telerik UI for Blazor.

The link title and indentation level were based on the heading type (H1, H2, H3, etc.). 

I am using the Telerik Editor for a Knowledgebase creation page, and having a TOC would be very useful. Also, I'm trying to avoid the need to create a custom tool to do this :-)

Justin


Hristian Stefanov
Telerik team
 answered on 20 Jan 2025
1 answer
60 views

Hi , currently working on a dashboard to display some data and need to display the Scheduler timeline view , but the problem is that the timeline width is too wide and you need to scroll to view events in the evening .

How to make the timeline view to fit the container?  as this is going to be display on a dashboard with no user interface (to scroll ).

Using Blazor 9 and latest kendo UI .

Thanks

Dimo
Telerik team
 answered on 17 Jan 2025
1 answer
126 views

Hi, I was working through converting a grid to TelerikGrid, referencing this document page:

https://www.telerik.com/blazor-ui/documentation/components/grid/editing/popup

Using GridEditMode.Popup.

Edit and Delete functionality was working.

New record functionality, however, was not.  It was triggering the correct dialog editing, but wouldn't trigger a dialog for adding a new record.  Instead it would fire my database code to add a record, with null data being passed.

I eventually figured out the example uses the OnCreate event, and I was using the OnAdd event.

This wasn't obvious to me, and there didn't seem to be anything in the documentation indicating you have to use OnCreate for the dialog to appear?

I then found this page which has more details on the events:

https://www.telerik.com/blazor-ui/documentation/components/grid/editing/overview

In the events section of the page, it states:

-

  • OnAdd - fires when the Add command button for a newly added item is clicked. The event is cancellable.
  • OnCreate - fires when the Save command button for a newly added item is clicked. Cancellable (cancelling it keeps the grid in Insert mode).

-

This isn't helpful either, and I'd go so far as to say it's incorrect?

If you have a GridCommandbutton like this:

<GridToolBarTemplate>
    <GridCommandButton Command="Add" Icon="@SvgIcon.Plus">Add New</GridCommandButton>
</GridToolBarTemplate>

And you are handling the OnAdd event, the event fires without giving the user a popup, and the data passed in the event is a null item.

If you are handling the OnCreate event, the user gets a popup, however the button to "add" is actually Update:

As you can see, there's neither an Add button to click or a Save button to click.

Perhaps this documentation is correct for other edit modes, but it seems to be misleading or flat out incorrect for Popup mode?

On a side note, the documentation also seems to switch back and forth between saying CUD and CRUD.  I can sort of understand why you omit the Read part, but it makes the documentation confusing and I'm not sure you correctly use CUD and CRUD in all the right places.  Furthermore, every other database documentation I've seen says CRUD, Read or not!

Dimo
Telerik team
 answered on 17 Jan 2025
1 answer
55 views

Hi,

I'm sure I'm being stupid but could anyone help with why the following classes are inaccessible when I try to follow the example at https://www.telerik.com/blazor-ui/documentation/knowledge-base/grid-custom-cell-formatting-with-radspreadstreamprocessing#custom-cell-formatting-of-the-exported-file-with-radspreadstreamprocessing ?

It's not like they are completely unrecognised, just inaccessible due to their protection level.

What am I missing?

Thanks,

Dean

'CellValueType' is inaccessible due to its protection level
'IWorkbookImporter' is inaccessible due to its protection level
'SpreadImporter' is inaccessible due to its protection level
'IWorksheetImporter' is inaccessible due to its protection level
'IWorkbookImporter.WorksheetImporters' is inaccessible due to its protection level
'IWorksheetImporter.Name' is inaccessible due to its protection level
'IRowImporter' is inaccessible due to its protection level
'IWorksheetImporter.Rows' is inaccessible due to its protection level
'IRowImporter.RowIndex' is inaccessible due to its protection level
'ICellImporter' is inaccessible due to its protection level
'IRowImporter.Cells' is inaccessible due to its protection level
'ICellImporter.Value' is inaccessible due to its protection level
'ICellImporter.Format' is inaccessible due to its protection level
'ICellImporter.ColumnIndex' is inaccessible due to its protection level
'ICellImporter.RowIndex' is inaccessible due to its protection level
'ICellImporter.ColumnIndex' is inaccessible due to its protection level
'IRowImporter.RowIndex' is inaccessible due to its protection level

Dimo
Telerik team
 answered on 17 Jan 2025
0 answers
89 views

Hi,

in my existing project I use custom filter rows for the grid:

 

<GridColumn Field="@column.DbName" FieldType="@type" Title="@column.HeaderName.Sanitize()" Width="@(column.DbName == nameof(Worker.BinderId) ? "230px" : "200px")" Lockable="true">
    <FilterCellTemplate>
        @if (type == typeof(string))
        {
            <CustomTextRowFilter Context="@context"/>
        }
        else if (type == typeof(int) || type == typeof(int?) || type == typeof(decimal) || type == typeof(decimal?))
        {
            <CustomNumberRowFilter Context="@context"/>
        }
        else if (type == typeof(DateTime) || type == typeof(DateTime?))
        {
            <CustomDateRowFilter Context="@context"/>
        }
        else if (type == typeof(bool) || type == typeof(bool?))
        {
            <CustomBooleanRowFilter Context="@context"/>
        }
    </FilterCellTemplate>

 

Furthermore I use the OnStateInit and OnStateChanged events so save and restore user settings for filters, groupings etc.


private async Task OnStateInitHandler(GridStateEventArgs<object> args)
{
    ShowSpinner = true;
    var stateValue = await AppStateService.GetAppStateAsync(SelectedProjectGuid, CurrentUser.Id, AppStateType.GridWorkerState);

    if (!string.IsNullOrWhiteSpace(stateValue))
    {
        var state = AppStateHelper.GetItem<GridState<object>>(stateValue);

        if (state != null)
        {
            await CleanGridState(state);
            args.GridState = state;
        }
    }

    ShowSpinner = false;
}

 

With the filter's initialization I set the value and operator:


protected override Task OnInitializedAsync()
{
    Field = ((FilterDescriptor) Context.FilterDescriptor.FilterDescriptors[0])?.Member;
    SetValue(((FilterDescriptor)Context.FilterDescriptor.FilterDescriptors[0]).Value);
    SetOperator();
    return base.OnInitializedAsync();
}

 

Up to now every time the grid was loading the filter values have been set correctly and the grid has filtered the records.

Now, after updating to a new Telerik version, the grid still filters correctly. But the filter component doesn't get the values and so doesn't show them.

The reason is:

Before update the process was... Init grid -> OnStateInit -> Init filter component

Now it is... Init grid -> Init filter component -> OnStateInit

So, the grid state is pulled too late.

Has the init sort order been changed? How can I get this solved?

 

Best regards,

Rayko

Rayko
Top achievements
Rank 1
Iron
Iron
Iron
 asked on 17 Jan 2025
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?