Thank you for all the details and working sample.
First I would like to notify you that I have removed the link to the sample project and I would like to remind you that sharing Commercial Assemblies on public facing Web Sites is not allowed as it could have legal consequences.
As for the issue you have reported, this is a known problem when controls are not loaded at initial load, but later after a PostBack. Loading Skins for controls is done on demand. As soon as they become visible either at initial load of on PostBack, the StyleSheets targeting the control will be loaded too. That results in registering the WebResources after the Custom Skin.
We are aware of this issue and until we manage to fix it, a viable workaround would be to register the Skin in the body tag instead.
For example, create a PlaceHolder as the first control in the Body tag.
<body id="MainBody" runat="server">
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
In the Class you use to register the skins, add the Control to the PlaceHolder you have created.
private void Page_PreRenderComplete(object sender, EventArgs e)
var styleLinks = new List<string>
var styles = Styles.Render(styleLinks.ToArray());
var lit = new LiteralControl
Text = styles.ToString()
This will ensure that the Custom skin will always be the last one registered.
Get quickly onboarded and successful
with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.