This is a migrated thread and some comments may be shown as answers.

I get old values from edit record.

4 Answers 139 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Technology
Top achievements
Rank 1
Technology asked on 22 Jun 2011, 07:50 AM
Dear Support,

i have tried all samples below but i cannot make it work.
http://www.telerik.com/community/code-library/aspnet-ajax/grid/manual-insert-update-delete-using-formtemplate-and-sql-backend.aspx
http://www.telerik.com/community/code-library/aspnet-ajax/grid/manual-insert-update-delete-operations-using-auto-generated-editform-with-sql-statements-from-the-code-behind.aspx

I always get old values and not the new, when i update the record.

Can you please help me to find what i am doing wrong?

Also, how can i type default values (like date or password) in "Add New Record" fields (EditForms)
and how can i make some fields disable in "Add New Record" ?

Below you will find my code.

Thank you in advance for you time.

Best Regards,
George
Navarino Technology Department


<telerik:RadGrid ID="grdCustomers" runat="server" Height="600px" Skin="Windows7"
                    AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True"
                    OnNeedDataSource="grdCustomers_NeedDataSource" OnDeleteCommand="grdCustomers_DeleteCommand"
                    OnInsertCommand="grdCustomers_InsertCommand" OnUpdateCommand="grdCustomers_UpdateCommand"
                    EnableAJAX="True">
                    <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Windows7">
                    </HeaderContextMenu>
                    <MasterTableView DataKeyNames="ID" GridLines="None" Width="100%" CommandItemDisplay="Top">
                        <Columns>
                            <telerik:GridEditCommandColumn>
                            </telerik:GridEditCommandColumn>
                            <telerik:GridButtonColumn CommandName="Delete" ConfirmTitle="Delete" ConfirmDialogType="RadWindow"
                                ConfirmText="Delete this product?" Text="Delete" UniqueName="Delete">
                            </telerik:GridButtonColumn>
                        </Columns>
                        <EditFormSettings ColumnNumber="2" CaptionFormatString="Edit details for employee with ID {0}"
                            CaptionDataField="ID">
                            <FormTableItemStyle Wrap="False"></FormTableItemStyle>
                            <FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle>
                            <FormMainTableStyle CellSpacing="0" CellPadding="3" Width="100%" />
                            <FormTableStyle GridLines="Horizontal" CellSpacing="0" CellPadding="2" CssClass="module"
                                Height="110px" Width="100%" />
                            <FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle>
                            <FormStyle Width="100%" BackColor="#EEF2EA"></FormStyle>
                            <EditColumn UpdateText="Update record" UniqueName="EditCommandColumn1" CancelText="Cancel edit">
                            </EditColumn>
                            <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle>
                        </EditFormSettings>
                        <ExpandCollapseColumn Visible="False">
                            <HeaderStyle Width="19px"></HeaderStyle>
                        </ExpandCollapseColumn>
                        <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
                        <RowIndicatorColumn Visible="False">
                            <HeaderStyle Width="20px" />
                        </RowIndicatorColumn>
                    </MasterTableView>
                    <ClientSettings>
                        <Scrolling AllowScroll="True" />
                    </ClientSettings>
                    <FilterMenu EnableImageSprites="False">
                    </FilterMenu>
                </telerik:RadGrid>



Protected Sub grdCustomers_NeedDataSource(ByVal sender As Object, ByVal e As GridNeedDataSourceEventArgs) Handles grdCustomers.NeedDataSource
 
    Try
        'Select Query to populate the RadGrid with data from table Employees.      
        Dim pCustomerID As New SqlClient.SqlParameter("@CustomerID", SqlDbType.NVarChar)
        pCustomerID.Value = cbCustomers.SelectedValue
 
        Dim tblResults As DataTable = ExecuteDataTable(ConnectionStrings.WebConnString, _
                                                       "spGetCustomersUsers", _
                                                       New Object() {pCustomerID})
        grdCustomers.DataSource = tblResults
    Catch ex As Exception
        grdCustomers.Controls.Add(New LiteralControl("Problem. Reason: " + ex.Message))
 
    End Try
 
 
End Sub
 
 
Protected Sub grdCustomers_UpdateCommand(ByVal source As Object, ByVal e As GridCommandEventArgs)
    'Get the GridEditableItem of the RadGrid      
    'Dim abc As String = e.Item.OwnerTableView.Columns.FindByDataField("ID").ToString()
    Dim editedItem As GridEditableItem = TryCast(e.Item, GridEditableItem)
    'Get the primary key value using the DataKeyValue.      
    'Access the textbox from the edit form template and store the values in string variables.      
 
    Dim item As GridEditableItem = TryCast(e.Item, GridEditableItem)
    Dim newValues As New Hashtable()
    item.OwnerTableView.ExtractValuesFromItem(newValues, item)
 
    Try
 
        Dim pID As New SqlClient.SqlParameter("@ID", SqlDbType.Int)
        Dim pUserName As New SqlClient.SqlParameter("@UserName", SqlDbType.NVarChar)
        Dim pPassword As New SqlClient.SqlParameter("@Password", SqlDbType.NVarChar)
        Dim pUserFullName As New SqlClient.SqlParameter("@UserFullName", SqlDbType.NVarChar)
        Dim pRetries As New SqlClient.SqlParameter("@Retries", SqlDbType.Int)
        Dim pPhone As New SqlClient.SqlParameter("@Phone", SqlDbType.NVarChar)
        Dim pUserEmail As New SqlClient.SqlParameter("@UserEmail", SqlDbType.NVarChar)
        Dim pINVEmail As New SqlClient.SqlParameter("@INVEmail", SqlDbType.NVarChar)
        Dim pDNEmail As New SqlClient.SqlParameter("@DNEmail", SqlDbType.NVarChar)
        Dim pLockCCCOrder As New SqlClient.SqlParameter("@LockCCCOrder", SqlDbType.Bit)
        Dim pPowerUser As New SqlClient.SqlParameter("@PowerUser", SqlDbType.Bit)
        Dim pUserGroupID As New SqlClient.SqlParameter("@UserGroupID", SqlDbType.Int)
        Dim pInactive As New SqlClient.SqlParameter("@Inactive", SqlDbType.Bit)
 
        pID.Value = editedItem.OwnerTableView.DataKeyValues(editedItem.ItemIndex)("ID").ToString()
        pUserName.Value = (TryCast(editedItem("UserName").Controls(0), TextBox)).Text
        pPassword.Value = (TryCast(editedItem("Password").Controls(0), TextBox)).Text
        pUserFullName.Value = (TryCast(editedItem("UserFullName").Controls(0), TextBox)).Text
        pRetries.Value = newValues.Item("Retries").ToString
        pPhone.Value = (TryCast(editedItem("Phone").Controls(0), TextBox)).Text
        pUserEmail.Value = (TryCast(editedItem("UserEmail").Controls(0), TextBox)).Text
        pINVEmail.Value = (TryCast(editedItem("INVEmail").Controls(0), TextBox)).Text
        pDNEmail.Value = (TryCast(editedItem("DNEmail").Controls(0), TextBox)).Text
        pLockCCCOrder.Value = (TryCast(editedItem("LockCCCOrder").Controls(0), CheckBox)).Checked
        pPowerUser.Value = (TryCast(editedItem("PowerUser").Controls(0), CheckBox)).Checked
        pUserGroupID.Value = (TryCast(editedItem("UserGroupID").Controls(0), RadNumericTextBox)).Text
        pInactive.Value = (TryCast(editedItem("Inactive").Controls(0), CheckBox)).Checked
 
        ExecuteInsertSP(ConnectionStrings.WebConnString, _
                        "spUpdateWebUser", _
                        New Object() {pID, _
                                      pUserName, _
                                      pPassword, _
                                      pUserFullName, _
                                      pRetries, _
                                      pPhone, _
                                      pUserEmail, _
                                      pINVEmail, _
                                      pDNEmail, _
                                      pLockCCCOrder, _
                                      pPowerUser, _
                                      pUserGroupID, _
                                      pInactive})
 
    Catch ex As Exception
        grdCustomers.Controls.Add(New LiteralControl("Unable to update Employee. Reason: " + ex.Message))
        e.Canceled = True
    End Try
 
End Sub

4 Answers, 1 is accepted

Sort by
0
Accepted
Tsvetina
Telerik team
answered on 27 Jun 2011, 07:15 AM
Hello George,

It seems that you are performing manual updates, yet you have turned automatic operations on. Try setting AllowAutomaticInserts/AllowAutomaticUpdates/AllowAutomaticDeletes="false" to confirm that this is not interfering with the functionality of the manual updates.

Greetings,
Tsvetina
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

0
Technology
Top achievements
Rank 1
answered on 27 Jun 2011, 09:12 AM
Dear Tsvetina,

thank you for your support.
That was the problem. Now it works perfect.

Can you also tell me how can i type default values (like date or password) in "Add New Record" fields (EditForms)
and how can i make some fields disable (or visible=false) in "Add New Record" (like date) ?

Thank you in advance,
George
Navarino Technology Department
0
Accepted
Tsvetina
Telerik team
answered on 27 Jun 2011, 10:01 AM
Hello George,

If we assume that your grid can only be in either Edit or Insert mode at a time, you can access the insert item controls using the following code:
Protected Sub RadGrid1_ItemDataBound(sender As Object, e As GridItemEventArgs)
    If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then
        If RadGrid1.MasterTableView.IsItemInserted Then
            'if the column is a template one, you should use FindControl() instead of Controls[0] to access the edit control
            CType(CType(e.Item, GridEditableItem)("City").Controls(0), TextBox).Text = "Boston"
        End If
    End If
End Sub

The same approach can be used to disable certain textboxes for insert.

Kind regards,
Tsvetina
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

0
Technology
Top achievements
Rank 1
answered on 27 Jun 2011, 01:20 PM
Dear Tsvetina,

Thank you.
Everything is working perfect.

George,
Navarino Technology Department
Tags
Grid
Asked by
Technology
Top achievements
Rank 1
Answers by
Tsvetina
Telerik team
Technology
Top achievements
Rank 1
Share this question
or