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

Update Not working for me

1 Answer 104 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Junaid
Top achievements
Rank 1
Junaid asked on 14 Dec 2011, 03:11 AM
I have an issue and I have been banging my head against the wall in solving this, This is some very basic stuff that is just not working for me. My Page Markup is as follows

<telerik:RadGrid ID="RadGrid1" runat="server" CssClass="RadGrid" GridLines="None"
    wallowpaging="True" PageSize="20" AllowSorting="True" AutoGenerateColumns="False"
    ShowStatusBar="True" AllowAutomaticDeletes="True" AllowAutomaticUpdates="True"
    DataSourceID="SqlDataSource1" OnItemDeleted="RadGrid1_ItemDeleted" OnItemInserted="RadGrid1_ItemInserted"
    OnItemUpdated="RadGrid1_ItemUpdated" OnItemCommand="RadGrid1_ItemCommand" OnPreRender="RadGrid1_PreRender"
    CellSpacing="0" OnItemCreated="RadGrid1_ItemCreated" OnItemDataBound="RadGrid1_ItemDataBound">
    <PagerStyle Mode="Slider" />
    <ClientSettings>
        <ClientEvents OnRowDblClick="RowDblClick" />
    </ClientSettings>
    <AlternatingItemStyle />
    <MasterTableView CommandItemDisplay="Top" Name="Documents" AutoGenerateColumns="False"
        Width="100%" DataSourceID="SqlDataSource1" DataKeyNames="ID">
        <DetailTables>
            <telerik:GridTableView DataKeyNames="ID" Name="Sections" DataSourceID="SqlDataSource2"
                runat="server">
                <%-- Sql DataSource 3 --%>
                <DetailTables>
                    <telerik:GridTableView DataKeyNames="ID" Name="Requirements" DataSourceID="SqlDataSource3">
                        <ParentTableRelation>
                            <telerik:GridRelationFields DetailKeyField="DocumentSectionID" MasterKeyField="ID" />
                        </ParentTableRelation>
                        <Columns>
                            <telerik:GridBoundColumn DataField="ID" HeaderText="ID" SortExpression="ID" UniqueName="ID"
                                Visible="false" FilterControlAltText="Filter Name column">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="DocNameReqID" SortExpression="DocNameReqID" FilterControlAltText="Filter Text column"
                                HeaderText="ID" UniqueName="DocNameReqID">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="Category" SortExpression="Category" FilterControlAltText="Filter Text column"
                                HeaderText="Category" UniqueName="Category">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="Text" SortExpression="Text" FilterControlAltText="Filter Text column"
                                HeaderText="Text" UniqueName="Text">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="Highlight" HeaderText="Highlight" SortExpression="Highlight"
                                UniqueName="Highlight" Visible="false" FilterControlAltText="Filter Highlight column">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="Keyword" SortExpression="Keyword" FilterControlAltText="Filter Text column"
                                HeaderText="Keyword" UniqueName="Keyword">
                            </telerik:GridBoundColumn>
                            <telerik:GridTemplateColumn>
                                <ItemTemplate>
                                    <asp:ImageButton ID="ibtnEdit" runat="server" CommandName="EditRecord" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>'
                                        AlternateText="Edit" ImageUrl="~/Images/edit.gif" />
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridButtonColumn ConfirmText="Delete this record?" ConfirmDialogType="RadWindow"
                                ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete"
                                UniqueName="ID">
                                <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" />
                            </telerik:GridButtonColumn>
                        </Columns>
                    </telerik:GridTableView>
                </DetailTables>
                <%-- Sql DataSource 3 --%>
                <ParentTableRelation>
                    <telerik:GridRelationFields DetailKeyField="DocumentID" MasterKeyField="ID" />
                </ParentTableRelation>
                <Columns>
                    <telerik:GridBoundColumn DataField="ID" HeaderText="ID" SortExpression="ID" UniqueName="ID"
                        Visible="false" FilterControlAltText="Filter Name column">
                    </telerik:GridBoundColumn>
                    <telerik:GridButtonColumn DataTextField="Name" HeaderText="Name" CommandName="RequirementLink"
                        ButtonType="LinkButton">
                    </telerik:GridButtonColumn>
                    <telerik:GridBoundColumn DataField="Text" SortExpression="Text" FilterControlAltText="Filter Text column"
                        HeaderText="Req Description" UniqueName="Text">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="PageNo" SortExpression="PageNo" FilterControlAltText="Filter Text column"
                        HeaderText="Page" UniqueName="Text">
                    </telerik:GridBoundColumn>
                    <telerik:GridEditCommandColumn ButtonType="ImageButton" FilterControlAltText="Filter EditCommandColumn column">
                    </telerik:GridEditCommandColumn>
                    <telerik:GridButtonColumn ConfirmText="Delete this record?" ConfirmDialogType="RadWindow"
                        ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete"
                        UniqueName="ID">
                        <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" />
                    </telerik:GridButtonColumn>
                </Columns>
                <SortExpressions>
                    <telerik:GridSortExpression FieldName="ID"></telerik:GridSortExpression>
                </SortExpressions>
            </telerik:GridTableView>
        </DetailTables>
        <Columns>
            <telerik:GridBoundColumn DataField="ID" HeaderText="ID" SortExpression="ID" UniqueName="ID"
                Visible="true" FilterControlAltText="Filter Name column">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="FileName" SortExpression="FileName" FilterControlAltText="Filter FileName column"
                HeaderText="File Name" UniqueName="FileName">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="DocFormat" FilterControlAltText="Filter DocFormat column"
                HeaderText="Format" SortExpression="DocFormat" UniqueName="DocFormat">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Size" FilterControlAltText="Filter Size column"
                HeaderText="Size (KB)" SortExpression="Size" UniqueName="Size" DataType="System.Double">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="TimeStamp" DataType="System.DateTime" FilterControlAltText="Filter TimeStamp column"
                HeaderText="Time Stamp" SortExpression="TimeStamp" UniqueName="TimeStamp">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ParsedTime" DataType="System.DateTime" FilterControlAltText="Filter ParsedTime column"
                HeaderText="Parsed Time" SortExpression="ParsedTime" UniqueName="ParsedTime">
            </telerik:GridBoundColumn>
            <telerik:GridEditCommandColumn ButtonType="ImageButton" FilterControlAltText="Filter EditCommandColumn column">
            </telerik:GridEditCommandColumn>
            <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Download" Text="Download"
                ImageUrl="~/Images/download.png">
            </telerik:GridButtonColumn>
            <telerik:GridButtonColumn ConfirmText="Delete this record?" ConfirmDialogType="RadWindow"
                ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete"
                UniqueName="ID">
                <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" />
            </telerik:GridButtonColumn>
        </Columns>
        <EditFormSettings UserControlName="EmployeeDetailsCS.ascx" EditFormType="WebUserControl">
            <EditColumn UniqueName="EditCommandColumn1">
            </EditColumn>
        </EditFormSettings>
    </MasterTableView>
    <FilterMenu EnableImageSprites="False">
    </FilterMenu>
    <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_WebBlue">
    </HeaderContextMenu>
</telerik:RadGrid>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DocumentParsingConnectionString %>"
    SelectCommand="SELECT [ID],[Name], [FileName], [DocType], [DocFormat], [DocRefNo], [Title], [Size], [Version], [TimeStamp],[ParsedTime] FROM [Documents]"
    UpdateCommand="UPDATE [Documents] SET [Name] = @Name WHERE [ID]=@ID" DeleteCommand="DELETE FROM [Documents] WHERE [ID] = @ID"
    OldValuesParameterFormatString="original_{0}" ConflictDetection="OverwriteChanges">
    <UpdateParameters>
        <asp:Parameter Name="Name" Type="String" />
        <asp:Parameter Name="original_ID" Type="Int64" />
        <asp:Parameter Name="original_Name" Type="String" />
    </UpdateParameters>
    <DeleteParameters>
        <asp:Parameter Name="ID" Type="Int64" />
    </DeleteParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:DocumentParsingConnectionString %>"
    SelectCommand="SELECT [ID],[PageNo],[Name],SUBSTRING ([Text], 0 , 255 ) AS [Text] FROM [DocumentSections] WHERE DocumentID=@DocumentID"
    DeleteCommand="DELETE FROM [DocumentSections] WHERE [ID] = @ID">
    <SelectParameters>
        <asp:SessionParameter SessionField="DocumentID" Name="DocumentID" Type="Int64" />
    </SelectParameters>
    <DeleteParameters>
        <asp:Parameter Name="ID" Type="Int64" />
    </DeleteParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:DocumentParsingConnectionString %>"
    SelectCommand="SELECT [DocumentSections].[Name] + CONVERT(varchar(250), ROW_NUMBER() OVER (ORDER BY [Requirements].[ID])) AS DocNameReqID, [DocumentSections].[DocumentID] AS [DocumentID], [DocumentSections].[Name] AS [DocumentSectionName], [Requirements].[ID],[Requirements].[Category],[Requirements].[Text], [Requirements].[Keyword], [Requirements].[Highlight] FROM [Requirements] INNER JOIN [DocumentSections] ON [Requirements].[DocumentSectionID] = [DocumentSections].[ID] WHERE [Requirements].[DocumentSectionID]=@DocumentSectionID"
    DeleteCommand="DELETE FROM [Requirements] WHERE [ID] = @ID">
    <SelectParameters>
        <asp:SessionParameter SessionField="DocumentSectionID" Name="DocumentSectionID" Type="Int64" />
    </SelectParameters>
    <DeleteParameters>
        <asp:Parameter Name="ID" Type="Int64" />
    </DeleteParameters>
</asp:SqlDataSource>

Now I have created the following user control by looking at the demos page

<table id="Table3" cellspacing="1" cellpadding="1" width="100%" border="0">
    <tr>
        <td>
        </td>
        <td>
        </td>
    </tr>
    <tr>
        <td>
            Name:
        </td>
        <td>
            <asp:HiddenField ID="hfID" runat="server" Value='<%# DataBinder.Eval( Container, "DataItem.Name" ) %>'></asp:HiddenField>
            <asp:TextBox ID="TextBox7" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.Name" ) %>'>
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            FileName:
        </td>
        <td>
            <asp:TextBox ID="TextBox8" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.FileName") %>'
                TabIndex="1">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            DocType:
        </td>
        <td>
            <asp:TextBox ID="TextBox9" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.DocType") %>'
                TabIndex="2">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            DocFormat:
        </td>
        <td>
            <asp:TextBox ID="TextBox5" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.DocFormat") %>'
                TabIndex="2">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            DocRefNo:
        </td>
        <td>
            <asp:TextBox ID="TextBox10" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.DocRefNo") %>'
                TabIndex="2">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td align="right" colspan="2">
            <asp:Button ID="btnUpdate" Text="Update" runat="server" CommandName="Update"
                Visible='<%# !(DataItem is Telerik.Web.UI.GridInsertionObject) %>'
                onclick="btnUpdate_Click">
            </asp:Button>
            <asp:Button ID="btnInsert" Text="Insert" runat="server" CommandName="PerformInsert"
                Visible='<%# DataItem is Telerik.Web.UI.GridInsertionObject %>'></asp:Button>
              
            <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
                CommandName="Cancel"></asp:Button>
        </td>
    </tr>
</table>

My problem is with the SQLDataSource Update command.... the ID passes by just fine but all the other values go in as NULL... I have confirmed this by running the profiler.

SQL PROFILER
"exec sp_executesql N'UPDATE [Documents] SET [Name] = @Name WHERE [ID]=@ID',N'@Name nvarchar(4000),@original_ID bigint,@original_Name nvarchar(4000)',@Name=NULL,@original_ID=179,@original_Name=NULL"

This is not worked for me at all from very beginning and I am very frustrated by this. Can any body help me with this. Thanks

Junaid Mufti
Synistosa Technologies
http://synistosa.com

1 Answer, 1 is accepted

Sort by
0
Antonio Stoilkov
Telerik team
answered on 16 Dec 2011, 05:35 PM
Hello Junaid,

Automatic operations through the DataSource control are not supported when you use standard WebUserControl as a custom edit form. However, you could go through the Automatic operations with WebUserControl as EditForm section in the help article below as observe how your scenario could be achieved by applying some custom logic.

Best wishes,
Antonio Stoilkov
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
Tags
Grid
Asked by
Junaid
Top achievements
Rank 1
Answers by
Antonio Stoilkov
Telerik team
Share this question
or