Alow reordering and drag-and-drop of column's group in ColumnGroupsViewDefinition.
Documentation about High-DPI mechanisms available on the website is very outdated and mostly does not consider the changes and improvements that Microsoft made with .net 7.0 and 8.0.
What's needed is thorough documentation about Telerik's behavior in comparison with the different situations on .net Framework 4.9 and the major .net Versions 6.0, 7.0, and 8.0.
Kind regards
Erwin
Hi guys,
It would be great to be able to set the day start/finish times in your Scheduler.
Your Scheduler control is fantastic, but I am building a Scheduler for a company that operates over 24hrs and the shift hours are
6am - 6pm
6pm - 6am
both shifts are classed as being the same day even though the nightshift crosses over to the next day.
I would like to be able to adjust the 24hr period that defines a day so that in month view the appointment will not carry over to the next shift.
and in day view, the schedule will start at 6am and go through to 6am.
If you could implement this, your scheduler control would be even more powerful and awesome.
Thanks!
To be accessible and compliant with our organizations standards, the search bar that can be enabled in the gridview should be accessible by pressing TAB and shift TAB. Right now the only way to select the search by keyboard is pressing Control F, but the up/down arrows and the search settings cog wheel cannot be accessed via the keyboard.
As of right now, the user cannot also select the column headers using the keyboard, which in turn means you cannot sort by a column with a keyboard.
RadVirtualGrid is created to support a million records or more. Still it contains some "heavy" operations like CopySelection/CutSelection/Paste which can take a long time.
I would like to intercept these methods so I can show a "Please wait"-window during the operation. Furthermore I have the need to set a flag to true when such a operation is executing.
We work with a RadGridView with 145000 rows and 4 columns. We use copy-paste to move data around from other apps and the application with build with Telerik.
When we copy a flat file (with tabs delimited fields) and we paste it to the RadGridView, the whole process is painfully slow. The function to retrieve the data from the clipboard takes minutes (maybe hours, I cancelled it). It tracked the cause down to the StringTokenizer class. The tokenizer splits the string up into separate fields. But after extracting a field it creates a new copy of that string (containing about 10MB of data) minus the field. I patched it (with HarmonyX) and now it takes only one second:
static class StringTokenizerPerformancePatch
{
static private readonly InstanceFieldAccessor<StringTokenizer, LinkedList<string>> _tokens = new InstanceFieldAccessor< StringTokenizer, LinkedList<string>>("tokens");
static private readonly InstanceFieldAccessor<StringTokenizer, string> _sourceString = new InstanceFieldAccessor<StringTokenizer, string>("sourceString");
static private readonly InstanceFieldAccessor< StringTokenizer, string> _delimiter = new InstanceFieldAccessor<StringTokenizer, string>("delimiter");
static private readonly InstanceFieldAccessor< StringTokenizer, IEnumerator<string>> _enumerator = new InstanceFieldAccessor<StringTokenizer, IEnumerator<string>>("enumerator");
[HarmonyPatch(typeof(StringTokenizer), "Tokenize")]
staticclassPatch_StringTokenizer_Tokenize
{
static bool Prefix(StringTokenizer __instance)
{
var tokens = _tokens.GetValue(__instance);
var sourceString = _sourceString.GetValue(__instance);
var delimiter = _delimiter.GetValue(__instance);
Tokenize(tokens, sourceString, delimiter);
_enumerator.SetValue(__instance, tokens.GetEnumerator());
returnfalse;
}
static private void Tokenize(LinkedList<string> tokens, string text, string delimiter)
{
tokens.Clear();
if (string.IsNullOrEmpty(text))
return;
int index = 0;
while(true)
{
var index2 = text.IndexOf(delimiter, index, StringComparison.Ordinal);
if (index2 < 0)
{
tokens.AddLast(text.Substring(index));
break;
}
string token = text.Substring(index, index2 - index);
tokens.AddLast(token);
index = index2 + delimiter.Length;
}
}
}
}
Please update your tokanizer to increase performance. While you are at it: