Hello,
I want to add a custom button to the right side of the BreadCrumb control.
The documentation says it's possible.
How can I do this?
Thanks.

Hi everyone,
I have a website: gatewayabroadeducations.com which has a total of around 280 pages, including blog posts. All these pages are correctly listed in the sitemap, and the sitemap is submitted in Google Search Console.
However, when I search on Google using the operator site:gatewayabroadeducations.com, I can only see about 29 pages indexed. Most of the blog posts and some other pages are not appearing in the Google search results.
I’ve checked:
The pages are in the sitemap
Pages are not blocked by robots.txt
Pages return a 200 status (not 404 or 301)
Canonical tags seem correct
No manual action in Search Console
I can't figure out why the remaining pages aren’t being indexed. Could this be due to:
Low-quality or duplicate content?
Crawl budget issues?
Internal linking problems?
Something else I might be missing?
Any help or suggestions to diagnose and fix this would be appreciated.
Thanks in advance!
I am trying to install the Telerik.Licensing package from nuget.org, as per your instructions.
No matter which version i try to install, including the current latest stable (1.6.24) i get a 404 error from nuget.telerik.com:
Failed to fetch results from V2 feed at 'https://nuget.telerik.com/nuget/FindPackagesById()?id='Telerik.Licensing'&semVerLevel=2.0.0' with following message : Response status code does not indicate success: 404 (Not Found).
Response status code does not indicate success: 404 (Not Found).
The output in VS does contain a lot of stuff, so it looks like it's trying do do something. This is the contents of the output. For shortness, I have only tried to install the pacjage one a single project:
===> Start of Output:

I have a WinForm application.
error info:Error message: System.Threading.ThreadStateException: "Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked. This exception is only raised if a debugger is attached to the process." Some of the code is as follows: 1.Partial code of class Program.cs: [STAThread] static async Task Main(string[] args) {
RadSplashScreenManager.ContentCreated += RadSplashScreenManager_ContentCreated;
RadSplashScreenSettings f = new RadSplashScreenSettings()...
var services = new ServiceCollection(); ... services.AddTransient<RadFrmMain>(); await using var sp = services.BuildServiceProvider(new ServiceProviderOptions { ValidateScopes = true, ValidateOnBuild = true }); Application.Run(sp.GetRequiredService<RadFrmMain>()); } 2.Partial code inside RadFrmMain.cs: radMenuOpenProject.Name = "radMenuOpenProject"; radMenuOpenProject.Text = "Open Project"; radMenuOpenProject.Click += radMenuOpenProject_Click; private async void radMenuOpenProject_Click(object sender, EventArgs e) { await OpenProjectAsync(); } private async Task OpenProjectAsync() { string? pickedFile = await InvokeOnUiAsync(() => { System.Diagnostics.Debug.Assert( System.Threading.Thread.CurrentThread.GetApartmentState() == System.Threading.ApartmentState.STA, "OpenFileDialog must be called on STA"); var root = string.IsNullOrWhiteSpace(_settings.SqliteRoot) ? "projects_db" : _settings.SqliteRoot; var start = LastPathStore.LoadOr(root); using var ofd = new OpenFileDialog { Title = "Open Project", Filter = "Project files (*.project.json;*.db)|*.project.json;*.db|JSON files (*.project.json)|*.project.json|SQLite (*.db)|*.db|All files (*.*)|*.*", Multiselect = false, InitialDirectory = Directory.Exists(start) ? start : root }; return ofd.ShowDialog(this) == DialogResult.OK ? ofd.FileName : null; //Error message: System.Threading.ThreadStateException: "Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked. This exception is only raised if a debugger is attached to the process." }); } Previously, when using: [STAThread] static void Main() it worked normally, but the project must use static async Task Main(string[] args). How to handle this?

If a user sees a grid that looks like Excel, they expect it to function the same as Excel. I'm not very familiar with Telerik grids, but the OOTB copy/paste functionality doesnt seem to work the identical to Excel.
Our users need to be able to select a single cell and paste a single cell. This seems to work.
They also need to be able to select a single cell and paste its value in many cells. This only seems to paste the value in the last selected cell, not all selected cells.
Before:
After
Select multiple continuous cells from a row and paste to a single cell, and have all copied cells pasted starting at the selected paste location. This seems to work
Select multiple continuous cells from a row and paste to a selection of continuous rows and have all copied cells pasted. This seems to only work on the last row
Before
After
Here are my current grid settings:
DataRadGrid.AllowAddNewRow = false;
DataRadGrid.AllowColumnChooser = false;
DataRadGrid.AllowColumnReorder = false;
DataRadGrid.AllowDeleteRow = false;
DataRadGrid.AllowEditRow = true;
DataRadGrid.AllowMultiColumnSorting = true;
DataRadGrid.AllowRowReorder = false;
DataRadGrid.AllowRowResize = false;
DataRadGrid.BeginEditMode = RadGridViewBeginEditMode.BeginEditOnKeystroke;
DataRadGrid.EnableAlternatingRowColor = true;
DataRadGrid.EnableCustomDrawing = true;
DataRadGrid.EnableFiltering = true;
DataRadGrid.EnableGrouping = false;
DataRadGrid.EnableHotTracking = false;
DataRadGrid.HorizontalScrollState = ScrollState.AlwaysShow;
DataRadGrid.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.None;
DataRadGrid.MasterTemplate.ShowFilteringRow = false;
DataRadGrid.MasterTemplate.ShowHeaderCellButtons = true;
DataRadGrid.MasterView.TableSearchRow.ShowClearButton = true;
DataRadGrid.MultiSelect = true;
DataRadGrid.SelectionMode = GridViewSelectionMode.CellSelect;
DataRadGrid.ShowColumnHeaders = true;
DataRadGrid.VerticalScrollState = ScrollState.AlwaysShow;
DataRadGrid.EnterKeyMode = RadGridViewEnterKeyMode.EnterMovesToNextRow;Are there settings I can use to mimic Excel, if not, is there boilerplate code to achieve this?
Thanks,
matt


Hi,
Using SaveFileDialog (not RadSaveFileDialog) in Telerik apps is broken.
I'm using the [STAThread] attribute on my Program.cs.
When running my app in Debug mode , I get the following exception when ShowDialog is called :
à System.Windows.Forms.FileDialog.RunDialog(IntPtr hWndOwner)
à System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
à NDC.WinUI.Helpers.WinDbFileHelper.<ExportDB>d__4.MoveNext()
When trying the same in Release mode, my app simply freezes and does nothing.
Here is my code :
public static async Task<bool> ExportDB(string dbPath)
{
try
{
if(File.Exists(dbPath))
{
List<DriveInfo> usbDrives = DriveInfo.GetDrives().Where(drive => drive.DriveType == DriveType.Removable && drive.IsReady).ToList();
using(SaveFileDialog sfd = new SaveFileDialog()
{
DefaultExt = NdcConstants.SqLiteExtension.ExtensionFilter,
InitialDirectory = usbDrives.Count != 0 ? usbDrives[0].RootDirectory.FullName : Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
Filter = NdcConstants.SqLiteExtension.FriendlyName,
FileName = Path.GetFileName(dbPath),
RestoreDirectory = true
})
{
if(sfd.ShowDialog() == DialogResult.OK)
{
if(File.Exists(sfd.FileName))
{
File.Delete(sfd.FileName);
}
await SqlFileBackup.ProcessOnlineBackup(dbPath, sfd.FileName);
return true;
}
}
}
return false;
}
catch(Exception ex)
{
Interaction.Error(ex);
return false;
}
}Which is call like this : await WinDbFileHelper.ExportDB(settings.LocalDatabaseFullPath)
Base .Net SDK Dialog class should be able to work even if called inside a Telerik app/form.

message error: La référence d objet n'est pas définie à une instance d'un objet.
Hello,
In my Frame, I use a RadDock with documentContainer and two toolwindows.
I would like the toolWindowFamily to dock automatically when I select it, rather than having to press the “pin” image.
On the “stabstripItem_click”, I put: oToolwindow:DockState= Telerik.WinControls.UI.Docking.DockState:Docked.
Here is my code:
METHOD PRIVATE VOID TabStripItem_Click( INPUT sender AS System.Object, INPUT e AS System.EventArgs ):
DEFINE VARIABLE oTabStripItem AS Telerik.WinControls.UI.TabStripItem NO-UNDO.
DEFINE VARIABLE oToolwindow AS Telerik.WinControls.UI.Docking.ToolWindow NO-UNDO.
DEFINE VARIABLE cValeur AS CHARACTER NO-UNDO.
oTabStripItem = CAST(sender, Telerik.WinControls.UI.TabStripItem) NO-ERROR.
IF oTabStripItem NE ? THEN
DO:
oToolwindow = CAST(oTabStripItem:TabPanel, Telerik.WinControls.UI.Docking.ToolWindow) NO-ERROR.
IF VALID-OBJECT(oToolwindow) THEN DO:
IF oToolwindow NE ? THEN
DO:
IF THIS-OBJECT:DockPrincipal:ActiveWindow NE oToolwindow THEN
DO:
oActiveWindow = THIS-OBJECT:DockPrincipal:ActiveWindow.
cValeur = THIS-OBJECT:oongFamilleListe:GetToolwindowFurtifValeur( oToolwindow:NAME ).
InitialiseToolWindow( oToolwindow:NAME ).
CASE oToolwindow:Name:
WHEN gcToolWindowNomAide[1] THEN DO:
IF cValeur NE "?" AND cValeur NE 'OFF'
THEN THIS-OBJECT:oongCodeAnalytiqueAide:Initialisation(cValeur).
ELSE THIS-OBJECT:oongCodeAnalytiqueAide:Initialisation("").
oToolwindow:Enabled = ( cValeur NE "?" AND cValeur NE 'OFF').
END.
WHEN gcToolWindowNomFiltre[1] THEN DO:
glDockParCode= YES.
oToolwindow:DockState= Telerik.WinControls.UI.Docking.DockState:Docked.
glDockParCode= NO.
oToolwindow:Enabled = YES.
gcNoeudCourant = 'C000'.
glFiltreVisibleFamille = YES.
oongFamilleArborescence:SelectionNoeud(gcNoeudCourant).
IF glRafraichir THEN DO:
SetEtatObjet("BtnSupprimer", NO).
//SetEtatObjet("BtnCopier", NO).
//SetEtatObjet("BtnColler", NO).
//SetEtatObjet("BtnCollerInserer", NO).
oongFamilleListe:SetParamFiltreFamille ( glFiltreVisibleFamille ,gcNoeudCourant ).
oongFamilleListe:Rafraichir( ).
END.
END.
END CASE.
THIS-OBJECT:DockPrincipal:ActiveWindow = oToolwindow.
END.
ELSE
DO:
THIS-OBJECT:DockPrincipal:CloseAutoHidePopup().
oToolwindow:AutoHideTab:Click:UnSubscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
oToolwindow:AutoHideTab:Click:Subscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
IF THIS-OBJECT:DockPrincipal:ActiveWindow NE oActiveWindow THEN
THIS-OBJECT:DockPrincipal:ActiveWindow = oActiveWindow.
END.
END.
END.
ELSE DO:
MESSAGE 'ERR - TabStripItem_Click '
VIEW-AS ALERT-BOX.
RETURN.
END.
END.
/*
IF lFlgDocked THEN DO:
//oToolwindow:AutoHideTab:Click:UnSubscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
glDockParCode = YES.
oToolwindow:DockState= Telerik.WinControls.UI.Docking.DockState:Docked NO-ERROR.
oToolwindow:Tag = "ON".
glDockParCode = NO.
// oToolwindow:AutoHideTab:Click:Subscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
END.
*/
RETURN.
END METHOD.

Hi;
I have a problem that I don't know how to solve.
I have a grid with several columns and rows containing different data types (text, numbers, images, etc.). Some of the cells are formatted using the RowFormatting event.
The grid also allows filtering by column.
I noticed that when my grid has many rows and is filtered, scrolling becomes very slow. If it's not filtered, it works perfectly with the same number of rows.
After investigating further, I realized that the FilterChanged event is being triggered multiple times when scrolling.
Furthermore, the value of MasterView.Rows.Count is different each time the event is executed. Sometimes it shows the filtered count, and other times it shows the unfiltered count.
This, in addition to the slowness, is a serious problem. For example, if I have a thread running that performs an action on filtered rows, I encounter issues with indexing and incorrect row selection.
I've attached a sample project. If you filter by a column and then scroll, the number of rows in the MasterView will be displayed in the text box.
Could you help me to solve this problem?
Thank you so much.
Regards
