Pending Review
Last Updated: 02 Dec 2020 14:11 by Juraj

Grid in BatchEdit mode must be one of the most useful features in some serious industry-level web applications. It comes quite naturally, that the data in the grid must be often extensively validated, and in many cases the client side validation is simply not enough. In our case, we had to use BatchEditing mode and we had to validate user-entered values serverside (due to complex rules, external data to validation against in real time and safety/security of the validation itself). 

Documentation states that BatchEdit does not support ServerSide validation. This makes BatchEdit mode mostly useless for some serious use, which is a pitty. But how much is needed to do so? The only thing we need is, when processing RadGrid_BatchEditCommand, to send the unsaved changes back to the client (overwrite the old values which would come from the database via NeedDataSource) and mark the changed cells as "EDITED" or "CHANGED", because:

a. We have to make sure, that the unsaved rows from the session variable will always come up, next time the user hits the Save changes button, in the BatchEditCommand in Hashtable newValues = command.NewValues; This is because only rows, which RadGrid understand as changed by user-client side, will come up in the newValues HashTable. In case that the user changed, in the first server-side roundtrip, rows 1 and 2, rows 1 and 2 would be saved to the session variable and they would be presented to the user, but in the second round user would not change rows 1 and 2 but change only row 3, it would be only row 3 which would come up in RadGrid1_BatchEditCommand the newValues Hashtable, and we would never get previous, still unsaved, changes

b. in case the user goes to the next page of the grid, using paging arrows in the grid, the grid normally warns about unsaved changes and prevents user from going to the next page, if there are any unsaved changes. If our changed rows from the session are not marked as EDITED, the grid would never ask this and would proceed to the next page, losing users changes.

We were fighting to make this work via some session variables, etc, but then Doncho from Telerik support sent us this simple solution. I think many would be happy if you could add it to the next release, so it is supported out of the box. Attaching files from Doncho, which give an ide to the solution

Thank you.

Pending Review
Last Updated: 11 Dec 2017 22:00 by Joel
Created by: Joel
Comments: 0
Category: Ajax
Type: Bug Report
0
I have a RadGrid with several thousand elements on it. In attempting to improve performance, the Visual Studio profiler informed me that it spent more than half of the request in PopulatePlainPanels checking whether something was in a list. (see attached before.png)

I changed the type of the variable plainPanelsClientIDs in RadAjaxControl.cs to be a HashSet<string> instead of a List<string>. As a knock-on effect, I had to import System.Linq into RadAjaxManager.cs to get the .toArray() call to work.

The result in the attached after.png shows the percentage of execution time dropped from 55% to 3%.

I'd appreciate it if the team would evaluate this change for inclusion in future releases.

Note 1: I have not done extensive testing on this, so I don't know what might break. The variable isn't referenced much, so the only thing I'm suspicious of is reflection, which I didn't check for and don't expect.
Note 2: If importing Linq is undesirable, a more manual conversion to an array can be done pretty easily.
Note 3: plainPanelsClientIDs is .add() 'ed to in two places, and both check for membership before being called. This shouldn't be necessary for a HashSet, which simply doesn't add if it's there. This seems a very minor improvement, but I didn't actually try it yet.
Pending Review
Last Updated: 12 Sep 2017 04:58 by Roger
In the RadGantt, when using WebServices with the Gantt, there is no OnClientRequestEnd client side event.

We have a scenario where we're wanting to be able to track whether or not an insert/update event succeeded (and update a control elsewhere on our page if it did) or failed (and show an alert if it didn't). however there is currently no event handler for when WebService requests from the RadGantt have completed.
Pending Review
Last Updated: 01 Sep 2017 19:20 by Erich
Created by: Erich
Comments: 0
Category: Grid
Type: Feature Request
2
I would like to suggest that the Buttons in the RadGrid allow databinding to the CommandName and CommandArgument fields.  And pretty much all the buttons or anything that triggers an ItemCommand event that allow a CommandName and CommandArgument have their properties to be databound and accessible in the code behind.

Thanks!!!
Pending Review
Last Updated: 10 Jul 2017 14:16 by Andreas
Created by: Andreas
Comments: 0
Category: Scheduler
Type: Feature Request
1
When working with All-day appointments, it would be really nice to be able to resize them in the week view.

In some cases when only working with All-day appointments, we were able to hide the time part of the Scheduler control entirely, but in this case the week view is almost pointless since our end users want to resize appointments a lot!
Pending Review
Last Updated: 12 Jun 2017 08:42 by Stephen
Created by: Stephen
Comments: 0
Category: ComboBox
Type: Bug Report
0
Given a RadComboBox with search, if the user enters some search text and then clicks on one of the filtered entries in the dropdown list the validation event is fired as the entry box loses focus and results in a 'false' return from validation as it uses the 'Text' property which is the search string. Validation is then refired as a result of clicking on the entry.
However, the initial 'false' return can cause unwanted behaviour in code that depends on the validation event.
I can supply a sample project demonstrating the problem, but it needs more than the 10 MB upload limit.
Pending Review
Last Updated: 30 May 2017 07:14 by Satish
Put more than two RadDatePicker with single SharedCalendar on page. some RadDatePicker are in side of UpdatePanel with a button in it. when I press that button RadDatePicker behaviour is strange. 
RadDatePicker inside UpdatePanel not opening Calendar popup while RadDatePicker outside UpdatePanel opens calendar popup but gives javascript error on any date selection. the javascript error is "Unable to get property '_selectedDates' of undefined or null reference".
It looks like it is destroying shared calendar object on partial postback.
Please find below sample code to replicate the issue. after clicking "Submit" button, it doesn't open calendar popup for "Date 2" and for "Date 1" it opens but doesn't allow to select date and gives JavaScript error.

----------------------
<asp:ScriptManager ID="sc1" runat="server" />
<telerik:RadCalendar ID="dtCal" runat="server" EnableMultiSelect="false" />
Date 1:
<telerik:RadDatePicker ID="dt1" Width="103px" runat="server" SharedCalendarID="dtCal" />
<hr />
<asp:UpdatePanel runat="server" ID="up">
	<ContentTemplate>
		Date 2:
		<telerik:RadDatePicker ID="dt2" Width="103px" runat="server" SharedCalendarID="dtCal" />
		<br />
		<asp:Button runat="server" ID="btnDT" Text="Submit" />
	</ContentTemplate>
</asp:UpdatePanel>
----------------------

When i add all controls in UpdatePanel it works properly. but Actual code is much more complex than above sample with too many lines of javascript code and many date pickers on single page and simply all Calendar and DatePicker controls can not be moved in UpdatePanel.
Pending Review
Last Updated: 30 May 2017 07:01 by Satish
"Loading..." text in Combobox with Virtual Scrolling is visible on first set of items loading.
It shows first time "Loading..." text. on scrolling it loads items from PageMethods/WebService but "Loading..." text it not visible i.e. because it is first <LI> item so it is not visible.

Instead of first <LI> item, it  should be at position where it always display while loading more items.

same issue is also in telerik demo website : http://demos.telerik.com/aspnet-ajax/combobox/examples/populatingwithdata/autocompletesql/defaultcs.aspx
Pending Review
Last Updated: 10 May 2017 17:02 by Lee Nessling
 For a Radmenu, when the current URL matches the site node url in the SiteMapDataSource, the corresponding menu items are highlighted (marked as selected).  This allows the user to see on the menu, where they are in the menu.

RadNavigation does not support this functionality.

 I've added the functionality myself, however it's not elegant as the NavigationNode does not contain it's parent value.   

Here is how I resolved it.


     private void RadNavigation1_NodeDataBound(object sender, Telerik.Web.UI.NavigationNodeEventArguments e)
        {
  System.Web.SiteMapNode node = ((System.Web.SiteMapNode)e.Node.DataItem);
            e.Node.Attributes.Add("Key", node.Key);

            if (e.Node.NavigateUrl == Page.Request.CurrentExecutionFilePath.ToString())
            {
                HighLightMenu(node);
            }
        }

        void HighLightMenu(System.Web.SiteMapNode node)
        {
            List<NavigationNode> nodes = (List<NavigationNode>)RadNavigation1.GetAllNodes();

            // find navigation node based on site node
            Telerik.Web.UI.NavigationNode navNode = nodes.Find(n => n.Attributes["Key"] != null && n.Attributes["Key"] == node.Key);

            //  Control ctrl = RadNavigation1.FindControl(navNode.ID);
            if (navNode != null)
                navNode.Selected = true;

            if (node.ParentNode != null)
                HighLightMenu(node.ParentNode);
        }
Pending Review
Last Updated: 25 Apr 2017 17:42 by Lane
Created by: Lane
Comments: 0
Category: Calendar
Type: Feature Request
1
When handling the SelectionChanged event on a Calendar with EnableMultiSelect="true", there is no way to determine the new selected date(s). The SelectedDatesEventArgs exposes the entire range of selected dates, but it does not tell which of those dates were previously selected. Add a property to the event args that would expose this.

OR

Add an attribute to the RadCalendar when EnableMultiSelect="true" to "DeselectWhenSelectingNewDates." If this is set to true, any date selection on the calendar would deselect any previously selected dates.

Pending Review
Last Updated: 12 Apr 2017 20:39 by Jason
Created by: Matt
Comments: 1
Category: Spreadsheet
Type: Feature Request
1
In support ticket #1058916 I was told I need to use an overriding pageLoad function to focus on the top of my page if I have a Spreadsheet control at the bottom of my page to prevent it from scrolling down to the spreadsheet when somebody navigates to the page.  Was the Spreadsheet control designed to be the only element on the page?  By forcing focus to be in cell A1 on pageLoad, it scrolls to the spreadsheet immediately and bypasses anything I might have above it.

I would rather see a property on the spreadsheet control to focus on A1 on pageLoad that is defaulted to False rather than having to add a script.  When I first navigate to any page without anchor tags in the URL, I expect to see the top of the page, not something that scrolls down to the spreadsheet and ignores anything above it!
Pending Review
Last Updated: 21 Mar 2017 16:41 by Goran
Created by: Goran
Comments: 0
Category: Rotator
Type: Feature Request
1
Hi, 

As the rotator works today, it does not only move contents according to the ScrollDirection property. It also sorts records according to ScrollDirection. Example: if i populate the rotator with records from a database with an SQL statement like "SELECT * FROM mytable ORDER BY DateSubmitted ASC", and then set ScrollDirection to "Down", the rotator starts sorting records in descending order, even though the SQL statement spcifically says to sort ascending. This is stupid in my opinion. The ScrollDirection property should do only precisely what it´s name suggests: move rotator contents in the direction set in the ScrollDirection property. The data source should decide in which order records are sorted. 

If I should change ScrollDirection for some reason, I will have to change the SQL statement to make records sort in the order I want them to as things are now. If I populate the rotator from code-behind, this means I will have also have to recompile the application instead of just changing the ScrollDirection property.
Pending Review
Last Updated: 09 Mar 2017 14:34 by SALVATORE
Created by: SALVATORE
Comments: 0
Category: SearchBox
Type: Feature Request
0
Can I advice to extend SearchBox or RadAutoCompleteBox control to write free text and open list box only if I digit a custom char like '@'?
I am tinking a control like Post textbox in Facebook or in Twitter where I can digit text and, if I digit '@' char opens a list with all friends o mine.

If you want extend more, it will be wonderful if you can associate more than one custom char and each custom char is associated to a different Data source.
Example:
- '@' to get products
- '#' to get Customers
- and so on...

This SearchBox must can be multiline too.

Thanks,
Francesco.
Pending Review
Last Updated: 08 Mar 2017 20:33 by Dennis
This error comes up often for this control and workarounds have been discussed and posted.  See below

http://www.telerik.com/forums/radcombobox-error-selection-out-of-range-parameter-name-value 
http://www.telerik.com/forums/selection-out-of-range-excpetion 
http://www.telerik.com/forums/selection-out-of-range-parameter-name-error-need-to-be-able-to-set-values-that-don-t-exist-in-the-combobox 
http://www.telerik.com/forums/selection-out-of-range-parameter-name-value 
http://www.telerik.com/forums/selection-out-of-range-parameter-name-value-radcombobox-in-radgrid
http://www.telerik.com/forums/radcombobox-selection-out-of-range-error 
 

The feature request is the following:

1.  Add an Attribute to the RadComboBox, RadDropdownList (and any other controls that suffer from this issue).

2. Let's call the Attribute   --   AppendIfSelectedValueMissing.

3. This attribute would be a boolean (True / False).  Default is FALSE.

4. If AppendIfSelectedValueMissing=True  then when the value of record is being Databound to a RadComboBox, RadDropDownList, etc.  A check (or Try/Catch) would occur to ensure that the Value exists in the DataSourceList and if it does NOT exist in the list then the SelectedValue would be Appended to the List.  Thus, eliminating the "Selection out of range, Parameter, Value" error.

This occur often because some lists get changed over time; however, the historical data may have a value that is no longer on the list -- thus triggering the error.

For example, let's say we ask for a user's Favorite Color.  Our original list was:
Red, Green, Blue

but for some reason -- management, changing user requirements, etc. the new list is

Red, Orange, Blue

Now, if we DataBind a RadComboBox to a historical record with Green as value, we get the "Selection Out of Range" errror.

What I am proposing is -- if we set the AppendIfSelectedValueMissing = True then 
databinding to a historical record with Green would have the following occur.

List from DB ---   Red, Orange, Blue
SelectedValue --    Green
AppendIfSelectedValueMissing
New List for Ctrl --  Red, Orange, Blue, Green

Thus, the error goes away, the historical data can stay the way it is and the lists can adjust their choices over time.

All good for everyone!!!

Thanks for your consideration. 
Pending Review
Last Updated: 23 Feb 2017 19:31 by cw
Created by: cw
Comments: 0
Category: Grid
Type: Feature Request
2
Would be nice to have RadGrid offer the feature to have options to Merge Cells with same contents so the report/grid won't be so busy. Users typically expect this kind of look and feel. 

Example & code included:
    http://www.marss.co.ua/2010/01/how-to-merge-cells-with-equal-values-in.html

This ticket discussed it also: 1091013

Others in forums asked about this also in the past since about 2009, if we google on: telerik grid asp.net merge cell. .
http://www.telerik.com/forums/problems-with-merge-row-in-radgrid

http://www.telerik.com/forums/merge-cells-by-column

http://www.telerik.com/forums/merge-rows

Then I found this link among the results from google. Though, I wish there are RowMerge and ColumnMerge properties in RadGrid for us to turn it on/off. That will be wonderful.

http://www.telerik.com/support/kb/winforms/details/radgridview-merge-celss

This example is also from the following link from the same google search result, the first link.

http://www.telerik.com/forums/merge-cell-in-radgrid

Thanks.

Pending Review
Last Updated: 22 Feb 2017 16:47 by Adam Nelson
Created by: Adam Nelson
Comments: 0
Category: PanelBar
Type: Feature Request
1
Please consider adding a ClientVisible or Display property to panel bar items that we can set server side to control the initial visibility of items on the client.

In the screenshot you can see the PanelBar and a menu to filter items to display. I like what I have except for the fact that I have to run javascript to filter items on each page load and async update based on the selected filter.

RadGrid has a property Display for columns which allows the column to be sent to the client but not be visible initially. I just want something like that for the PanelBar.

Thank you for your consideration.
Pending Review
Last Updated: 16 Feb 2017 12:53 by Mauro
Created by: Mauro
Comments: 0
Category: Scheduler
Type: Feature Request
1
In a RadScheduler with a custom provider (inheriting from SchedulerProviderBase), there is no way to get "expanded" appointments (i.e. masters plus occurrences minus exceptions). 

I devised a solution (as suggested in http://www.telerik.com/forums/scheduler-exporting-a-range-of-appointments), using the Occurrences property of RecurrenceRule:

        public IEnumerable<Appointment> GetExpandedAppointments(RadScheduler owner, DateTime start, DateTime end)
        {
            var result = new List<Appointment>();

            foreach (Appointment a in this.GetAppointments(owner))
            {
                // see http://www.telerik.com/forums/scheduler-exporting-a-range-of-appointments
                if (a.RecurrenceState == RecurrenceState.Master)
                {
                    RecurrenceRule parsedRule;
                    RecurrenceRule.TryParse(a.RecurrenceRule, out parsedRule);
                    parsedRule.SetEffectiveRange(start, end);

                    int nc = 0;
                    foreach (DateTime occurrence in parsedRule.Occurrences)
                    {
                        Appointment app = a.Clone();
                        app.ID = a.ID + "_" + ++nc;
                        app.Start = occurrence;
                        app.End = occurrence.Add(a.Duration);
                        app.RecurrenceRule = null;
                        app.RecurrenceParentID = a.ID;
                        app.RecurrenceState = RecurrenceState.Occurrence;
                        result.Add(app);
                    }
                }
                else if (a.RecurrenceState != RecurrenceState.Occurrence)
                {
                    result.Add(a);
                }
            }

            return result;
        }
    }

I think this functionality can be part of SchedulerProviderBase, there is no custom logic.

Thanks

Regards

Mauro
Pending Review
Last Updated: 13 Feb 2017 14:58 by Stephen
Created by: Stephen
Comments: 0
Category: OrgChart
Type: Feature Request
2
It would be useful if the RadOrgChart control had a mechanism for grouping employees/entities in a department. An example would be a Sales Department at a leaf node made up of managers. The department would have an additional group indicator on it, but selecting an individual manager in the group would drill through to that manager and his reports. With the current behaviour, if a single VP manages sales and finance, all reports beneath them would look the same.
Pending Review
Last Updated: 19 Jan 2017 23:06 by bryan
Created by: bryan
Comments: 0
Category: DropDownList
Type: Feature Request
2
When the LIST is displayed in a RadDropDownList, the datasource is usually a lookup table.  Therefore,  it is not practical to set the LIST attribute "DropdownWidth" to a fixed number of pixels, since items can be added to the lookup table where the text length is longer than any currently in the table.   If you text is too long for the LIST width, the text wraps and this is not a pleasant user experience.  

This control needs an autosize feature for the LIST, so it fits the longest text without causing wrapping.   This feature already exists on the RadComboBox with attributes DropDownAutoWidth="Enabled" and "NoWrap=true".   These should also be used I the RadDropDownList so the LISTS work identically.
Pending Review
Last Updated: 11 Jan 2017 14:15 by Albert Shenker
When using keyboard navigation, the ESC key currently does some things properly (like closing out of batch editing forms). However, it does not prevent the firing of certain update events (like BatchEditCellValueChanged). The ESC key should act like a "cancel" key, so no update events should fire when it is pressed.
1 2 3 4 5 6