
Hello I am having one issue on RadGrid. I have a simple Employee list which I am binding in Page_Load inside !IsPostBack check.
As soon as, a postback happens (whether it is due to a button click or due to allowsorting (automatic sort)); the grid disappears. This is because NeedDataSource is not executed on postback.
However, if I write RadGrid1.Rebind() then NeedDataSource is executed.
Does this means everytime when a postback happens, I have to call RadGrid1.Rebind() to bind the grid (whether it is due to a button click or due to allowsorting (automatic sort))?
I remember in earlier version we did not needed to call Rebind() method to make NeedDataSource execute.
Please help.
Scenario:
Grid with a GridDropDown column. The source for the drop down is a simple table of name/id pairs. If doing an update in batch mode, and the drop down's ListTextField has trailing spaces, the ListValueField won't be passed back during an update.
See sample below. At line 20 is the code to create the sample SQL data.
When running this sample, if you attempt to update a row and use any of the drop downs that end in spaces, the update will not assign the correct id value. If you change the edit mode from batch to popup, it will work fine. If you change line 42 to read:
ListTextField="name_trimmed" or ListTextField="name_appended"
both of which change the field to NOT end in trailing spaces, it will work as well.
I was able to work around this, but it's definitely a bug in the control. Trailing spaces should not throw of the ListValueField. I'm currently using version 2016.2.607.45
01.<%@ Page Language="C#" %>02. 03.<!DOCTYPE html>04. 05.<script runat="server">06. 07.</script>08. 09.<html xmlns="http://www.w3.org/1999/xhtml">10.<head runat="server">11. <title></title>12.</head>13.<body>14. <form id="form1" runat="server">15. <div>16. 17. <asp:ScriptManager runat="server" ID="scriptmgr" />18. 19. <%--20./* SQL code to create tables and test data */21.create table dropdownvalues (id int identity(1,1), name varchar(200))22.create table datalist (id int identity(1,1), dropdown_id int)23.insert into dropdownvalues (name) values('no spaces'), ('spaces ')24. 25.insert into datalist(dropdown_id)26.select top 2 id from dropdownvalues 27. 28.insert into dropdownvalues (name) values('three spaces ')29.insert into dropdownvalues (name) values('forty spaces ')30.insert into dropdownvalues (name) values('zero spaces')31. --%>32. 33. <telerik:GridDropDownListColumnEditor runat="server" ID="ddeditor" DropDownStyle-Width="200" />34. 35. <telerik:RadGrid runat="server" DataSourceID="sql_source" AllowAutomaticUpdates="true" AutoGenerateColumns="false">36. <%--Works fine in PopUp edit mode--%>37. <MasterTableView EditMode="Batch" CommandItemDisplay="Top" DataKeyNames="id" >38. <Columns> 39. <telerik:GridEditCommandColumn/>40. <telerik:GridBoundColumn DataField="id" HeaderText="id" ReadOnly="true" />41. <telerik:GridDropDownColumn DataField="dropdown_id" HeaderText="dropdown_id" DataSourceID="sql_dropdown" 42. ListValueField="id" ListTextField="name" HeaderStyle-Width="400" ColumnEditorID="ddeditor" />43. <telerik:GridBoundColumn DataField="saved_dropdown_id" HeaderText="saved_dropdown_id" ReadOnly="true" />44. </Columns>45. </MasterTableView>46. </telerik:RadGrid>47. 48. <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:MyDB%>" ID="sql_source" runat="server" 49. SelectCommand="select *, dropdown_id as saved_dropdown_id from datalist" 50. UpdateCommand="update datalist set dropdown_id=@dropdown_id where id=@id"51. />52. 53. <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:MyDB%>" ID="sql_dropdown" runat="server" 54. SelectCommand="select id,name, rtrim(name) name_trimmed, name + '-' name_appended from dropdownvalues order by name" />55. </div>56. </form>57.</body>58.</html>I have a pie chart with many slices and want to set the legend on the bottom of the chart with Vertical orientation of all the items.
If I set the legend position to right or left, the vertical orientation of the items works fine, but will not work on top or bottom of the chart. Is there a work around for this or will I have to manually create my own legend in a table below the chart?
I've been trying to implement a RegularExpressionValidator for a textbox in my RadGrid. Edits and Inserts happen using the InPlace editor. They are not automatic, I deal with them via code. If I go into Edit Mode I cannot exit Edit Mode or do anything until I fill in the empty fields in the InPlace Editor and either use the Insert or Cancel command. Using the debugger I've determined that no postbacks happen while the grid is in edit mode and there are empty fields in the inplace editor. Not quite sure what to do, cannot find similar issues in the forums.
This is my OnDataBound event that implements the RegularExpressionValidator:
'if the grid is currently being edited
If e.Item.IsInEditMode Then
ToggleControlVisability(e)
SetDefaultRateValue(e)
Dim eItem = TryCast(e.Item, GridEditableItem)
Dim editor = TryCast(eItem.EditManager.GetColumnEditor("rate"), GridTextBoxColumnEditor)
Dim cell = TryCast(editor.TextBoxControl.Parent, TableCell)
Dim rev = New RegularExpressionValidator()
rev.ControlToValidate = editor.TextBoxControl.ID
rev.ValidationExpression = "[0-9]*\.?[0-9]*"
rev.CssClass = "text-danger"
rev.ErrorMessage = " Please provide a valid number."
cell.Controls.Add(rev)
End If
My Cancel command (which does not get executed):
ToggleCommandColumns()
rgJobItems.MasterTableView.ClearEditItems()
rgJobItems.Rebind()
ToggleCommandColumns is a custom function that swaps button visibility so it should not be affecting anything. Same goes for ToggleControlVisability, it just makes some controls visible on the page.
I only started encountering this issue when I put in a RegularExpressionValidator. If I take it out, it works fine (I can cancel the editor at any time).
Any support would be appreciated.