Greetings!
Can anyone suggest a method with which I can change a cell's BackColor when its value is edited? Using textchanged, keydown or some other event will do. The problem I have is that the grid is autogenerated and most of the column names are unknown.
I set my cells to be editable in PreRender like so:
And my edit mode is InPlace. I noticed the Batch edit mode has its own ClientSetting called "ClientEvents-OnBatchEditCellValueChanged", but for reasons my edit mode has to be InPlace.
The way it works now is that the grid loads as completely editable. A user can update multiple cells on multiple rows - so I'd like to provide a visual cue to let the user know which items have been edited (and have not yet been saved). I noticed on this demo a little triangle shows when you click out of a cell that was edited - and that would be fine. I just didn't see the mechanism that produces that result. My situation would also be slightly different, as my cells are always in edit mode (i.e., textbox vs label) - but the principle
would be the same.
I tried doing this on my ItemCreated (excluding the known column names, that are either not visible or not editable):
But I then get an error message that the "Editor cannot be initialized for column: " followed by the first column that should be editable (and this error appears to get thrown on the Rebind() in my PreRender, for what it's worth).
Can anyone suggest a method with which I can change a cell's BackColor when its value is edited? Using textchanged, keydown or some other event will do. The problem I have is that the grid is autogenerated and most of the column names are unknown.
I set my cells to be editable in PreRender like so:
For Each item As GridItem In RadGridViewExcelGridTest.MasterTableView.Items If TypeOf item Is GridEditableItem Then Dim editableItem As GridEditableItem = CType(item, GridDataItem) editableItem.Edit = True End IfNextRadGridViewExcelGridTest.Rebind()And my edit mode is InPlace. I noticed the Batch edit mode has its own ClientSetting called "ClientEvents-OnBatchEditCellValueChanged", but for reasons my edit mode has to be InPlace.
The way it works now is that the grid loads as completely editable. A user can update multiple cells on multiple rows - so I'd like to provide a visual cue to let the user know which items have been edited (and have not yet been saved). I noticed on this demo a little triangle shows when you click out of a cell that was edited - and that would be fine. I just didn't see the mechanism that produces that result. My situation would also be slightly different, as my cells are always in edit mode (i.e., textbox vs label) - but the principle
would be the same.
I tried doing this on my ItemCreated (excluding the known column names, that are either not visible or not editable):
If TypeOf e.Item Is GridEditableItem Then Dim item As GridDataItem = TryCast(e.Item, GridDataItem) For Each column As GridColumn In item.OwnerTableView.RenderColumns If (column.UniqueName <> "Project" And column.UniqueName <> "DepartmentNumber" And column.UniqueName <> "ProjectNumber" And column.UniqueName <> "Alias") Then Dim EditBox As New TextBox() EditBox.Text = item(column).Text AddHandler EditBox.TextChanged, AddressOf EditBox_TextChanged EditBox.AutoPostBack = True item(column).Controls.Clear() item(column).Controls.Add(EditBox) End If NextEnd IfBut I then get an error message that the "Editor cannot be initialized for column: " followed by the first column that should be editable (and this error appears to get thrown on the Rebind() in my PreRender, for what it's worth).
11 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 04 Nov 2013, 10:55 AM
Hi Karl,
Please try the following sample code snippet, I have tried to set the back-color for the rows that has its text changed.
ASPX:
VB:
Thanks,
Princy
Please try the following sample code snippet, I have tried to set the back-color for the rows that has its text changed.
ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="true" DataSourceID="SqlDataSource1" GridLines="None" AllowPaging="true" OnPreRender="RadGrid1_PreRender" AllowMultiRowEdit="true"OnItemCreated="RadGrid1_ItemCreated"> <MasterTableView DataKeyNames="OrderID" EditMode="InPlace"> </MasterTableView></telerik:RadGrid>VB:
Protected Sub RadGrid1_PreRender(sender As Object, e As EventArgs) 'To Keep rows in Edit Mode If Not IsPostBack Then For Each item As GridItem In RadGrid1.MasterTableView.Items If TypeOf item Is GridEditableItem Then Dim editableItem As GridEditableItem = TryCast(item, GridDataItem) editableItem.Edit = True End If Next RadGrid1.Rebind() End IfEnd SubProtected Sub RadGrid1_ItemCreated(sender As Object, e As GridItemEventArgs) If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem) For Each column As GridColumn In item.OwnerTableView.RenderColumns If column.ColumnType = "GridBoundColumn" Then 'Checks for BoundColumn Dim txt As TextBox = DirectCast(item(column.UniqueName).Controls(0), TextBox) txt.AutoPostBack = True txt.TextChanged += New EventHandler(AddressOf txt_TextChanged) End If If column.ColumnType = "GridNumericColumn" Then 'Checks for NumericColumn Dim txtnumeric As RadNumericTextBox = DirectCast(item(column.UniqueName).Controls(0), RadNumericTextBox) txtnumeric.AutoPostBack = True txtnumeric.TextChanged += New EventHandler(AddressOf txtnumeric_TextChanged) End If Next End IfEnd SubPrivate Sub txtnumeric_TextChanged(sender As Object, e As EventArgs) Dim txt As RadNumericTextBox = DirectCast(sender, RadNumericTextBox) txt.BackColor = Color.GoldEnd SubPrivate Sub txt_TextChanged(sender As Object, e As EventArgs) Dim txt As TextBox = DirectCast(sender, TextBox) txt.BackColor = Color.GoldEnd SubThanks,
Princy
0
Karl
Top achievements
Rank 1
answered on 04 Nov 2013, 02:44 PM
Princy,
I did not get the expected results. Just a point of clarification - this line:
This looks like a failed C# conversion to VB.net. Can you clarify this is how its supposed to be written:
With my version, the back color does not change. Also, the auto postback clears the changes of the cell (like when I tab out).
Thanks,
Karl
I did not get the expected results. Just a point of clarification - this line:
txt.TextChanged += New EventHandler(AddressOf txt_TextChanged)This looks like a failed C# conversion to VB.net. Can you clarify this is how its supposed to be written:
AddHandler txt.TextChanged, AddressOf txt_TextChangedWith my version, the back color does not change. Also, the auto postback clears the changes of the cell (like when I tab out).
Thanks,
Karl
0
Princy
Top achievements
Rank 2
answered on 05 Nov 2013, 04:15 AM
Hi Karl,
The TextChanged event of TextBox can be raised as follows:
VB:
The code is working fine at my end. I have used 2013.2.611.40. Can you provide your full code snippet with the version you are using to identify the issue.
Thanks,
Princy
The TextChanged event of TextBox can be raised as follows:
VB:
AddHandler txt.TextChanged, AddressOf txt_TextChanged'DefinitionProtected Sub txt_TextChanged(ByVal sender As Object, ByVal e As EventArgs) . . . End SubThe code is working fine at my end. I have used 2013.2.611.40. Can you provide your full code snippet with the version you are using to identify the issue.
Thanks,
Princy
0
Karl
Top achievements
Rank 1
answered on 05 Nov 2013, 01:30 PM
Princy,
Thanks for your reply.
I'm using 2013.3.1015.40.
Here's my ItemCreated:
And here's the function:
I used the Response.Redirect to confirm the function was being called (it is), and to verify the type of column (numeric), which is why I only have the one case in the ItemCreated event.
Thanks,
Karl
Thanks for your reply.
I'm using 2013.3.1015.40.
Here's my ItemCreated:
Protected Sub RadGridViewExcelGridTest_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGridViewExcelGridTest.ItemCreated If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem) For Each column As GridColumn In item.OwnerTableView.RenderColumns If column.ColumnType = "GridNumericColumn" Then 'Checks for NumericColumn Dim txtnumeric As RadNumericTextBox = DirectCast(item(column.UniqueName).Controls(0), RadNumericTextBox) txtnumeric.AutoPostBack = True AddHandler txtnumeric.TextChanged, AddressOf txtnumeric_TextChanged End If Next End IfEnd SubAnd here's the function:
Private Sub txtnumeric_TextChanged(sender As Object, e As EventArgs) 'Response.Redirect("http://www.google.com") Dim txt As RadNumericTextBox = DirectCast(sender, RadNumericTextBox) txt.BackColor = Drawing.Color.GoldEnd SubI used the Response.Redirect to confirm the function was being called (it is), and to verify the type of column (numeric), which is why I only have the one case in the ItemCreated event.
Thanks,
Karl
0
Princy
Top achievements
Rank 2
answered on 06 Nov 2013, 09:09 AM
Hi Karl,
I guess you are binding the RadGrid in the PageLoad event. Please bind the RadGrid in the NeedDataSource event as follows.
ASPX:
VB:
Thanks,
Princy
I guess you are binding the RadGrid in the PageLoad event. Please bind the RadGrid in the NeedDataSource event as follows.
ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="true" GridLines="None" AllowPaging="true" OnPreRender="RadGrid1_PreRender" AutoGenerateEditColumn="false" AllowMultiRowEdit="true" OnItemCreated="RadGrid1_ItemCreated"> <MasterTableView DataKeyNames="OrderID" EditMode="InPlace"> </MasterTableView></telerik:RadGrid>VB:
Protected Sub RadGrid1_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource Dim ConnString As [String] = ConfigurationManager.ConnectionStrings("Northwind_newConnectionString3").ConnectionString Dim conn As New SqlConnection(ConnString) Dim adapter As New SqlDataAdapter() adapter.SelectCommand = New SqlCommand("SELECT OrderID,ShipCity,CustomerID FROM Orders", conn) Dim myDataTable As New DataTable() conn.Open() Try adapter.Fill(myDataTable) Finally conn.Close() End Try RadGrid1.DataSource = myDataTable End SubProtected Sub RadGrid1_PreRender(sender As Object, e As System.EventArgs) Handles RadGrid1.PreRender If Not IsPostBack Then For Each item As GridItem In RadGrid1.MasterTableView.Items If TypeOf item Is GridEditableItem Then Dim editableItem As GridEditableItem = TryCast(item, GridDataItem) editableItem.Edit = True End If Next RadGrid1.Rebind() End If End SubProtected Sub RadGrid1_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemCreated If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem) For Each column As GridColumn In item.OwnerTableView.RenderColumns If column.ColumnType = "GridNumericColumn" Then 'Checks for NumericColumn Dim txtnumeric As RadNumericTextBox = DirectCast(item(column.UniqueName).Controls(0), RadNumericTextBox) txtnumeric.AutoPostBack = True AddHandler txtnumeric.TextChanged, AddressOf txtnumeric_TextChanged End If Next End If End Sub Private Sub txtnumeric_TextChanged(sender As Object, e As EventArgs) Dim txt As RadNumericTextBox = DirectCast(sender, RadNumericTextBox) txt.BackColor = Drawing.Color.Gold End Sub Thanks,
Princy
0
Karl
Top achievements
Rank 1
answered on 06 Nov 2013, 05:04 PM
Princy,
I think that will do the trick, but since I'm using stored procedures I'll need to rework a number of things, and I'm not very well versed on the NeedDataSource event. I have read the advanced data-binding article in the RadGrid documentation, and perused the forums, but wasn't able to find anything concrete for using stored procedures with NeedDataSource.
Here's my NeedDataSource event (with hard-coded parameters for testing):
I removed the SelectCommand from my SqlDataSource, and added OnNeedDataSource to my RadGrid declaration. It looks right (to me anyway), but it doesn't load the grid. The grid doesn't load when the page loads, and it doesn't load when I programmatically call Rebind() in the selectedindexchanged event of a dropdownlist on my page.
And once that's settled, I'll need to figure out how to pass parameters to my stored procedure in the NeedDataSource event. This is how I was doing it using my SqlDataSource, from a dropdownlist's selectedindexchanged event:
I suspect the method will be similar, but I'd prefer to ask now than be stuck again.
Thanks!
Karl
I think that will do the trick, but since I'm using stored procedures I'll need to rework a number of things, and I'm not very well versed on the NeedDataSource event. I have read the advanced data-binding article in the RadGrid documentation, and perused the forums, but wasn't able to find anything concrete for using stored procedures with NeedDataSource.
Here's my NeedDataSource event (with hard-coded parameters for testing):
Using con As New SqlConnection(cnSQLLive) con.Open() Try Dim cmd As New SqlCommand() cmd.CommandType = CommandType.StoredProcedure cmd.CommandText = "spJobForecastingGetEmployeesByDepartmentAndProject" cmd.Parameters.Add("DepartmentNumber", TypeCode.String, "13211") cmd.Parameters.Add("ProjectNumber", TypeCode.String, "1313249800") cmd.Connection = con Dim adapter As New SqlDataAdapter(cmd) Dim myDataTable As New DataTable() adapter.Fill(myDataTable) RadGridViewExcelGridTest.DataSource = myDataTable Finally con.Close() End TryEnd UsingI removed the SelectCommand from my SqlDataSource, and added OnNeedDataSource to my RadGrid declaration. It looks right (to me anyway), but it doesn't load the grid. The grid doesn't load when the page loads, and it doesn't load when I programmatically call Rebind() in the selectedindexchanged event of a dropdownlist on my page.
And once that's settled, I'll need to figure out how to pass parameters to my stored procedure in the NeedDataSource event. This is how I was doing it using my SqlDataSource, from a dropdownlist's selectedindexchanged event:
SqlDataSourceExcelGridTest.SelectParameters.Clear()SqlDataSourceExcelGridTest.SelectCommand = "spJobForecastingGetEmployeesByDepartmentAndProject"SqlDataSourceExcelGridTest.SelectParameters.Add("DepartmentNumber", TypeCode.String, strUserDeptNumber)SqlDataSourceExcelGridTest.SelectParameters.Add("ProjectNumber", DropdownListExistingProjects.SelectedValue)SqlDataSourceExcelGridTest.DataBind()RadGridViewExcelGridTest.Rebind()I suspect the method will be similar, but I'd prefer to ask now than be stuck again.
Thanks!
Karl
0
Princy
Top achievements
Rank 2
answered on 08 Nov 2013, 06:00 AM
Hi Karl,
In your code make sure that you are able to add the parameters to the DataTable, if the parameters are not obtained properly the radgrid won't be bound properly. Put breakpoints in your code and check for the values in DataTable. I have tried a sample code snippet to bind the RadGrid to the value selected from DropDownList. Please try and let me know if any concern.
ASPX:
VB:
Thanks,
Princy
In your code make sure that you are able to add the parameters to the DataTable, if the parameters are not obtained properly the radgrid won't be bound properly. Put breakpoints in your code and check for the values in DataTable. I have tried a sample code snippet to bind the RadGrid to the value selected from DropDownList. Please try and let me know if any concern.
ASPX:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"DataTextField="OrderID" DataValueField="EmployeeID" DataSourceID="SqlDataSource1"></asp:DropDownList><telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" GridLines="None" AllowPaging="true" OnNeedDataSource="RadGrid1_NeedDataSource"> <MasterTableView DataKeyNames="OrderID"> <Columns> <telerik:GridNumericColumn UniqueName="OrderID" DataField="OrderID" HeaderText="OrderID" /> <telerik:GridNumericColumn DataField="EmployeeID" HeaderText="EmployeeID" UniqueName="EmployeeID" /> </Columns> </MasterTableView></telerik:RadGrid>VB:
Private IsSelected As Boolean = FalsePrivate orderid As String, employeeid As StringPublic Shared connection As String = WebConfigurationManager.ConnectionStrings("Northwind_newConnectionString3").ConnectionStringPrivate conn As New SqlConnection(connection)Public cmd As New SqlCommand()Protected Sub RadGrid1_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) cmd.Connection = conn cmd.CommandType = CommandType.StoredProcedure cmd.CommandText = "StoredProcedure4" If IsSelected Then cmd.Parameters.AddWithValue("@OrderID", orderid) cmd.Parameters.AddWithValue("@EmployeeID", employeeid) Else cmd.Parameters.AddWithValue("@OrderID", 10302) cmd.Parameters.AddWithValue("@EmployeeID", 55) End If Dim dt As New DataSet() Dim adp As New SqlDataAdapter() adp.SelectCommand = cmd adp.Fill(dt) RadGrid1.DataSource = dt conn.Close()End SubProtected Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs) IsSelected = True orderid = DropDownList1.SelectedItem.Text employeeid = DropDownList1.SelectedValue RadGrid1.Rebind()End SubThanks,
Princy
0
Karl
Top achievements
Rank 1
answered on 08 Nov 2013, 03:01 PM
Princy,
Thanks - that does the trick!
However, it's created a few quirks that's I'm hoping you can help remedy.
1. The number of editable rows is constrained by the number of records that are initilly loaded. For example, if I have 4 records in my data set, then change to a data set with 8 records, only the first 4 are editable.
Link to screencast: http://screencast.com/t/PipUrn6I8N
2. If I edit a record, save those changes, and attempt to edit another record, my data set disappears.
Link to screencast: http://www.screencast.com/t/FfecC9ds
3. Because of the postback (I presume), any changes to the last cell edited aren't retained unless the cell gets its own post back (tab out).
Link to screencast: http://screencast.com/t/UJbN8nbLsARW
Thanks for continued support!
Karl
Thanks - that does the trick!
However, it's created a few quirks that's I'm hoping you can help remedy.
1. The number of editable rows is constrained by the number of records that are initilly loaded. For example, if I have 4 records in my data set, then change to a data set with 8 records, only the first 4 are editable.
Link to screencast: http://screencast.com/t/PipUrn6I8N
2. If I edit a record, save those changes, and attempt to edit another record, my data set disappears.
Link to screencast: http://www.screencast.com/t/FfecC9ds
3. Because of the postback (I presume), any changes to the last cell edited aren't retained unless the cell gets its own post back (tab out).
Link to screencast: http://screencast.com/t/UJbN8nbLsARW
Thanks for continued support!
Karl
0
Hello Karl,
Straight onto your questions:
1) I believe the problem is related to the Not IsPostBack condition in the PreRender event. When you change the datasource, you don't put the new rows in edit mode
2) Can you share the code behind the Save Changes button with me? Also can you please put a breakpoint there to see if the database is updated correctly?
3) I'm not sure what's happening here. I do my best to find out if you post the relevant code.
Finally, I'd like to recommend that you keep the developer console of your browser open all the time so that you can see if there are JS errors.
Regards,
Daniel
Telerik
Straight onto your questions:
1) I believe the problem is related to the Not IsPostBack condition in the PreRender event. When you change the datasource, you don't put the new rows in edit mode
Protected Sub RadGrid1_PreRender(sender As Object, e As System.EventArgs) Handles RadGrid1.PreRender If Not IsPostBack Then ....2) Can you share the code behind the Save Changes button with me? Also can you please put a breakpoint there to see if the database is updated correctly?
3) I'm not sure what's happening here. I do my best to find out if you post the relevant code.
Finally, I'd like to recommend that you keep the developer console of your browser open all the time so that you can see if there are JS errors.
Regards,
Daniel
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
0
Karl
Top achievements
Rank 1
answered on 13 Nov 2013, 02:04 PM
Daniel,
Regarding item #1: I'm using Princy's suggestion by inclusing the Not IsPostBack condition. If, however, I comment out that condition, my cells lose the "color change on text change" feature, and my cells revert to the pre-edited text when tabbing out.
Link to screencast: http://screencast.com/t/CqwMY6RHX
Regarding item #2: Here's the code for my save changes. Note, if I include a Rebind statement after the update, the cells drop out of edit mode.
And since I have access to the Database, I can confirm the appropriate record(s) is updated.
Regarding item #3: I'm not sure what you mean by the "relevant" code. I'm using the code as supplied by Princy. I'll paste it below for the sake of completeness.
Thanks,
Karl
Regarding item #1: I'm using Princy's suggestion by inclusing the Not IsPostBack condition. If, however, I comment out that condition, my cells lose the "color change on text change" feature, and my cells revert to the pre-edited text when tabbing out.
Link to screencast: http://screencast.com/t/CqwMY6RHX
Regarding item #2: Here's the code for my save changes. Note, if I include a Rebind statement after the update, the cells drop out of edit mode.
Protected Sub RadGridProjectScheduling_ItemCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGridProjectScheduling.ItemCommand If (e.CommandName = "UpdateAll") Then Dim columns As Array columns = RadGridProjectScheduling.MasterTableView.RenderColumns For Each editedItem As GridEditableItem In RadGridProjectScheduling.EditItems Dim newValues As Hashtable = New Hashtable For Each column As GridColumn In columns If (column.UniqueName <> "ExpandColumn" And column.UniqueName <> "RowIndicator" And column.UniqueName <> "DepartmentNumber" And column.UniqueName <> "ProjectNumber" And column.UniqueName <> "Alias" And column.UniqueName <> "Project" And column.UniqueName <> "Name" And column.UniqueName <> "JF_ID") Then e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem) Dim columnValue As String = newValues(column.UniqueName) SqlDataSourceExcelGridTest.UpdateParameters.Clear() SqlDataSourceExcelGridTest.UpdateParameters.Add("DepartmentNumber", newValues("DepartmentNumber")) SqlDataSourceExcelGridTest.UpdateParameters.Add("ProjectNumber", newValues("ProjectNumber")) SqlDataSourceExcelGridTest.UpdateParameters.Add("Alias", newValues("Alias")) SqlDataSourceExcelGridTest.UpdateParameters.Add("WorkWeek", column.UniqueName) SqlDataSourceExcelGridTest.UpdateParameters.Add("WorkHours", columnValue) SqlDataSourceExcelGridTest.Update() editedItem.Edit = False End If Next Next ElseIf (e.CommandName = "Insert") Then ModalPopupExtenderAddEmployee.Show() End IfEnd SubAnd since I have access to the Database, I can confirm the appropriate record(s) is updated.
Regarding item #3: I'm not sure what you mean by the "relevant" code. I'm using the code as supplied by Princy. I'll paste it below for the sake of completeness.
Protected Sub RadGridProjectScheduling_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGridProjectScheduling.ItemCreated If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem) For Each column As GridColumn In item.OwnerTableView.RenderColumns If column.ColumnType = "GridNumericColumn" Then 'Checks for NumericColumn Dim txtnumeric As RadNumericTextBox = DirectCast(item(column.UniqueName).Controls(0), RadNumericTextBox) txtnumeric.AutoPostBack = True AddHandler txtnumeric.TextChanged, AddressOf txtnumeric_TextChanged End If Next End IfEnd SubPrivate Sub txtnumeric_TextChanged(sender As Object, e As EventArgs) Dim txt As RadNumericTextBox = DirectCast(sender, RadNumericTextBox) txt.BackColor = Drawing.Color.Honeydew End SubThanks,
Karl
0
Accepted
Hello Karl,
I will paste my reply from the support ticket here so that it is available for the community:
"I examined some of the code in your project. I think it would be better for you if you set the background color for the changed values on the client - except if you specifically need to make a roundtrip to the server.
So, if you decide to try this approach, here is how you can integrate it in your code:"
"There is too much code which I would need to debug in order to give you a better advice, but after a quick look at it I think you can continue using your initial approach for databinding instead of advanced data-binding using NeedDataSource."
Regards,
Daniel
Telerik
I will paste my reply from the support ticket here so that it is available for the community:
"I examined some of the code in your project. I think it would be better for you if you set the background color for the changed values on the client - except if you specifically need to make a roundtrip to the server.
So, if you decide to try this approach, here is how you can integrate it in your code:"
Protected Sub RadGridProjectScheduling_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGridProjectScheduling.ItemCreated If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem) For Each column As GridColumn In item.OwnerTableView.RenderColumns If column.ColumnType = "GridNumericColumn" Then 'Checks for NumericColumn Dim txtnumeric As RadNumericTextBox = DirectCast(item(column.UniqueName).Controls(0), RadNumericTextBox) txtnumeric.ClientEvents.OnValueChanging = "function(sender, args) { sender.get_styles().EnabledStyle[0] = 'background-color: orange'; sender.updateCssClass(); }" txtnumeric.EnabledStyle.BackColor = Drawing.Color.Honeydew 'we need to set something here, as the styles are serialized to the client only when they are in a non-default state txtnumeric.AutoPostBack = False End If Next End If End Sub"There is too much code which I would need to debug in order to give you a better advice, but after a quick look at it I think you can continue using your initial approach for databinding instead of advanced data-binding using NeedDataSource."
Regards,
Daniel
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.