
                                            Peter Maslin
                                            
                                    
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                        
                                        Peter Maslin
                                        asked on 23 Jul 2009, 03:08 PM
                                    
                                hi
i use the following Method for retreiving the fields from the edit form (Which is Auto Generated)
    
the problem i am having is that i have several readonly/hidden fields in the grid , but this method does not return those fields , only the ones visible to the user ,
currently there are 5 fields on the screen that the user can edit , and about 3-4 that are non editable , but i need the values from them to be able to do the update on the database.
the above method will only return the visible items.
what method can be used to get the edited items as well as the readonly items from the row etc.
many thanks
Peter.
                                i use the following Method for retreiving the fields from the edit form (Which is Auto Generated)
| void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e) | 
| { | 
| GridEditFormItem Data = (GridEditFormItem)e.Item; | 
| Hashtable ht = new Hashtable(); | 
| Data.ExtractValues(ht); | 
| } | 
the problem i am having is that i have several readonly/hidden fields in the grid , but this method does not return those fields , only the ones visible to the user ,
currently there are 5 fields on the screen that the user can edit , and about 3-4 that are non editable , but i need the values from them to be able to do the update on the database.
the above method will only return the visible items.
what method can be used to get the edited items as well as the readonly items from the row etc.
many thanks
Peter.
12 Answers, 1 is accepted
0
                                Accepted

                                                    Princy
                                                    
                                            
    Top achievements
    
            
                 Rank 2
                Rank 2
            
    
                                                
                                                answered on 24 Jul 2009, 05:46 AM
                                            
                                        Hi Peter,
I tried the following approach to access the value of the ReadOnly field in the UpdateCommand event.
ASPX:
    
CS:
    
Thanks
Princy
                                        I tried the following approach to access the value of the ReadOnly field in the UpdateCommand event.
ASPX:
| <telerik:GridBoundColumn UniqueName="ProductName" ReadOnly="true" HeaderText="ProductName" DataField="ProductName" > | 
| </telerik:GridBoundColumn> | 
CS:
| protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e) | 
| { | 
| GridEditFormItem Data = (GridEditFormItem)e.Item; | 
| string strHiddenField=Data.ParentItem["ProductName"].Text; | 
| Hashtable ht = new Hashtable(); | 
| Data.ExtractValues(ht); | 
| ht.Add("ProductName", strHiddenField); | 
| } | 
Thanks
Princy
0
                                
                                                    Peter Maslin
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 24 Jul 2009, 08:24 AM
                                            
                                        hi Princy
thats exactly what i needed , a simple and straight forward awnser , thanks alot.
Peter
                                        thats exactly what i needed , a simple and straight forward awnser , thanks alot.
Peter
0
                                
                                                    Peter Maslin
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 24 Jul 2009, 08:25 AM
                                            
                                        hi Princy
thats exactly what i needed , a simple and straight forward awnser , thanks alot.
Peter
                                        thats exactly what i needed , a simple and straight forward awnser , thanks alot.
Peter
0
                                
                                                    Peter Maslin
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 24 Jul 2009, 08:45 AM
                                            
                                        hi Princy
thats exactly what i needed , a simple and straight forward awnser , thanks alot.
Peter
                                        thats exactly what i needed , a simple and straight forward awnser , thanks alot.
Peter
0
                                
                                                    Amy Liu
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 29 Jun 2010, 11:12 PM
                                            
                                        I don't get it that it only work one field for me:
Code below
    
                                        Code below
| GridEditFormItem Data = (GridEditFormItem)e.Item; | 
| string strHiddenField = Data.ParentItem["username"].Text; | 
| // string strHiddenSID = Data.ParentItem["SID"].Text; | 
| Hashtable ht = new Hashtable(); | 
| Data.ExtractValues(ht); | 
| ht.Add("username", strHiddenField); | 
| //ht.Add("SID", Convert.ToInt32(strHiddenSID)); | 
if I only use username field, update is successful.
the SID in the table is foreign kay and bigint.
If I add the SID as readOnly then I am unable to update. the error says try to insert null into sid field of the table.
I checked the code. strHiddenSID has value.
Please tell me why. Thanks for any help in advance.
0
                                
                                                    Amy Liu
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 30 Jun 2010, 02:13 PM
                                            
                                        Ha. I solved it not from the function but from by setting the the column's property ForceExtractValue !!!
                                        0
                                
                                                    Amy Liu
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 30 Jun 2010, 02:41 PM
                                            
                                        I don't think the approach works for me. why? Even the hash table have all the fields values but these never been passed to update command for me.The record has been updated with these fields empty. I used Grid with ajax. there should some thing else there I didn't consider. Please tell me. thanks.
                                        0
                                Hi Amy,
In order to further troubleshoot the problem, try if this approach works fine for you when AJAX is turned off. In some cases it might influence the update process, depending on the way it is used.
You might also view this help topic on Updating values in-place and with edit forms, where you will find detailed example on how to handle the UpdateCommand event on a ReadOnly column.
Regards,
Tsvetina
the Telerik team
                                        In order to further troubleshoot the problem, try if this approach works fine for you when AJAX is turned off. In some cases it might influence the update process, depending on the way it is used.
You might also view this help topic on Updating values in-place and with edit forms, where you will find detailed example on how to handle the UpdateCommand event on a ReadOnly column.
Regards,
Tsvetina
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
                                
                                                    MK
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 17 Sep 2012, 12:16 PM
                                            
                                        I got following error -
Unable to cast object of type 'Telerik.Web.UI.GridDataItem' to type 'Telerik.Web.UI.GridEditFormItem'
Any solve it?
                                        Unable to cast object of type 'Telerik.Web.UI.GridDataItem' to type 'Telerik.Web.UI.GridEditFormItem'
Any solve it?
0
                                Hi,
Make sure that you are checking the item type before casting the item at the line where you get the error. If you are not sure how to do this, paste your code here, so we can take a look.
Regards,
Tsvetina
the Telerik team
                                        Make sure that you are checking the item type before casting the item at the line where you get the error. If you are not sure how to do this, paste your code here, so we can take a look.
Regards,
Tsvetina
the Telerik team
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 their blog feed now.
0
                                
                                                    Eric Harrelson
                                                    
                                            
    Top achievements
    
            
                 Rank 2
                Rank 2
            
    
                                                
                                                answered on 22 Dec 2012, 11:45 PM
                                            
                                        For what it's worth, this worked for me:
 
 
 
 
 
 
 
 
 
 
 
 
Code behind for ascx:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                        Private Sub grid_UpdateCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles grid.UpdateCommand    Dim editedItem As GridEditableItem = CType(e.Item, GridEditableItem)    Dim uc As UserControl = CType(e.Item.FindControl(GridEditFormItem.EditFormUserControlID), UserControl)    Dim Code As String = editedItem.GetDataKeyValue("RaceID")    Dim RaceName As String = CType(uc.FindControl("txtRaceName"), TextBox).Text    For Each r As GRCMA.Data.Race In Me.ModelContext.Races.ToList()        If r.RaceID = Code Then            r.RaceName = RaceName            Me.ModelContext.SaveChanges()            BindData()        End If    NextEnd Sub
That's working against a grid with this definition:
<telerik:RadGrid ID="grid" runat="server" GridLines="None" PageSize="50" AllowPaging="True" AutoGenerateColumns="False" ShowStatusBar="true" CssClass="RadGrid">
    <MasterTableView Width="100%" CommandItemDisplay="Top" DataKeyNames="RaceID" PagerStyle-PageSizes="50">
        <Columns>
            <telerik:GridEditCommandColumn UniqueName="editcol" ButtonType="ImageButton" />
            <telerik:GridButtonColumn CommandName="Delete" ConfirmText="Are you sure you wish to delete this record?" Text="Delete" UniqueName="Delete" ButtonType="ImageButton" />
            <telerik:GridBoundColumn UniqueName="RaceID" ReadOnly="true" HeaderText="Race ID" DataField="RaceID" />
            <telerik:GridBoundColumn UniqueName="RaceName" HeaderText="Race Name" DataField="RaceName" />
            <telerik:GridBoundColumn UniqueName="UsedBy" ReadOnly="true" HeaderText="# Users" DataField="Users.Count" />
        </Columns>
        <EditFormSettings UserControlName="RaceEditor.ascx" EditFormType="WebUserControl">
            <EditColumn UniqueName="EditCommandColumn1">
            </EditColumn>
        </EditFormSettings>
        <ExpandCollapseColumn ButtonType="ImageButton" Visible="True" UniqueName="ExpandColumn">
            <HeaderStyle Width="19px"></HeaderStyle>
        </ExpandCollapseColumn>
    </MasterTableView>
</telerik:RadGrid>
Here's the UserControl where I'm doing my editing:<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="RaceEditor.ascx.vb" Inherits="TM.RaceEditor" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><table id="Table2" cellspacing="2" cellpadding="5" width="100%" border="1" rules="none" style="border-collapse: collapse">    <tr class="EditFormHeader">        <td>            RaceID:        </td>        <td>            <asp:TextBox runat="server" ID="txtRaceID" value='<%# DataBinder.Eval( Container, "DataItem.RaceID" ) %>' /><asp:RequiredFieldValidator ID="rfvRaceID" runat="server" ControlToValidate="txtRaceID" ErrorMessage="required" ForeColor="Red" />        </td>    </tr>    <tr>        <td>            Race Name:        </td>        <td>            <asp:TextBox runat="server" ID="txtRaceName" value='<%# DataBinder.Eval( Container, "DataItem.RaceName" ) %>' /><asp:RequiredFieldValidator ID="rfvRaceName" runat="server" ControlToValidate="txtRaceName" ErrorMessage="required" ForeColor="Red" />        </td>    </tr>    <tr>            <td align="right" colspan="2">                <asp:Button ID="btnUpdate" Text="Update" runat="server" CommandName="Update" Visible='<%# Not (TypeOf DataItem Is Telerik.Web.UI.GridInsertionObject) %>' />                <asp:Button ID="btnInsert" Text="Insert" runat="server" CommandName="PerformInsert" Visible='<%# (TypeOf DataItem Is Telerik.Web.UI.GridInsertionObject) %>' />                                  <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel" />            </td>    </tr></table>Public Class RaceEditor    Inherits UserControlBaseClass    Private _dataItem As Object = Nothing    Public Property DataItem() As Object        Get            Return Me._dataItem        End Get        Set(ByVal value As Object)            Me._dataItem = value        End Set    End Property    Protected Sub RaceEditor_DataBinding(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.DataBinding        ' allow user to edit raceid if inserting        If TypeOf DataItem Is Telerik.Web.UI.GridInsertionObject Then            ' new mode            txtRaceID.ReadOnly = False            rfvRaceID.Enabled = True        Else            'edit mode            txtRaceID.ReadOnly = True            rfvRaceID.Enabled = False        End If    End SubEnd Class0
                                Hello,
I am attaching a project archive kindly provided by Eric.
I have striped out the Telerik.OpenAccess.35.Extensions.dll and Telerik.Web.UI.dll assemblies, add them in order to run the project.
Greetings,
Vasil
the Telerik team
                                        I am attaching a project archive kindly provided by Eric.
I have striped out the Telerik.OpenAccess.35.Extensions.dll and Telerik.Web.UI.dll assemblies, add them in order to run the project.
Greetings,
Vasil
the Telerik team
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 their blog feed now.