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

Batch updates templatecolumns

2 Answers 106 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Marcus
Top achievements
Rank 1
Marcus asked on 03 Jun 2011, 11:45 AM
Hello,
 Is
it possible table with many tempaltecolumns (in edit mode)  everything to update?
<telerik:RadGrid ID="RadGrid1" runat="server" AllowAutomaticInserts="True"
                CellSpacing="0" DataSourceID="SqlDataSource2" GridLines="None"
                ShowFooter="True" AllowAutomaticDeletes="True"
                AllowAutomaticUpdates="True" ShowStatusBar="True" AllowMultiRowEdit="True">
                <ClientSettings>
                    <Selecting AllowRowSelect="True" />
                </ClientSettings>
<MasterTableView AutoGenerateColumns="False" DataKeyNames="kdId"
                    DataSourceID="SqlDataSource2" CommandItemDisplay="Top"
                    InsertItemPageIndexAction="ShowItemOnFirstPage" EditMode="InPlace">
<CommandItemSettings ExportToPdfText="Export to PDF" AddNewRecordText="Add"></CommandItemSettings>
 
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
 
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
 
    <Columns>
        <telerik:GridTemplateColumn DataField="ArtId" DataType="System.Int32"
            FilterControlAltText="Filter ArtId column" HeaderText="Category"
            SortExpression="ArtId" UniqueName="ArtId">
            <EditItemTemplate>
                <telerik:RadComboBox ID="RadComboBox3" Runat="server"
                    DataSourceID="SqlDataSource1" DataTextField="ArtName" DataValueField="ArtId"
                    SelectedValue='<%# Bind("ArtId") %>'>
                </telerik:RadComboBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <telerik:RadComboBox ID="RadComboBox2" Runat="server"
                    DataSourceID="SqlDataSource1" DataTextField="ArtName" DataValueField="ArtId"
                    SelectedValue='<%# Bind("ArtId") %>' EmptyMessage="Add New Category">
                </telerik:RadComboBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <telerik:RadComboBox ID="RadComboBox1" Runat="server"
                    DataSourceID="SqlDataSource1" DataTextField="ArtName" DataValueField="ArtId"
                    SelectedValue='<%# Bind("ArtId") %>'
                    onitemdatabound="RadComboBox1_ItemDataBound"
                    onselectedindexchanged="RadComboBox1_SelectedIndexChanged"
                    AutoPostBack="True">
                </telerik:RadComboBox>
            </ItemTemplate>
            <HeaderStyle Width="80px" />
            <ItemStyle Width="80px" />
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn DataField="Info"
            FilterControlAltText="Filter Info column" HeaderText="Details"
            SortExpression="Info" UniqueName="Info">
            <EditItemTemplate>
                <asp:TextBox ID="InfoTextBox" runat="server" Text='<%# Bind("Info") %>'></asp:TextBox>
            </EditItemTemplate>
            <InsertItemTemplate>              
                <telerik:RadTextBox ID="Info" Runat="server" Height="15px"
                    TextMode="MultiLine" Width="250px" Text='<%# Bind("Info") %>'>
                    <ClientEvents OnBlur="Blur" OnFocus="Focus" />
                </telerik:RadTextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <telerik:RadTextBox ID="Info" Runat="server" Height="15px"
                    Text='<%# Bind("Info") %>' TextMode="MultiLine" Width="250px">
                    <ClientEvents OnBlur="Blur" OnFocus="Focus" />
                </telerik:RadTextBox>
            </ItemTemplate>
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn FilterControlAltText="Filter CodaAccount column"
            HeaderText="Coda Account" UniqueName="CodaAccount" ReadOnly="True">
            <InsertItemTemplate>
                <asp:Label ID="Label1" runat="server"></asp:Label>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="CodaAccount" runat="server" Text="Label"></asp:Label>
            </ItemTemplate>
            <HeaderStyle Width="60px" />
            <ItemStyle Width="60px" />
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn DataField="Anzahl" DataType="System.Int32"
            FilterControlAltText="Filter Anzahl column" HeaderText="Number"
            SortExpression="Anzahl" UniqueName="Anzahl">
            <EditItemTemplate>
                <telerik:RadNumericTextBox ID="Anzahl" Runat="server"
                    Culture="de-DE" DbValue='<%# Bind("Anzahl") %>' Width="50px">
                    <EnabledStyle HorizontalAlign="Right" />
                </telerik:RadNumericTextBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <telerik:RadNumericTextBox ID="Anzahl" Runat="server" Culture="de-DE"
                    Width="50px" DbValue='<%# Bind("Anzahl") %>'>
                    <NumberFormat DecimalDigits="0" />
                    <EnabledStyle HorizontalAlign="Right" />
                </telerik:RadNumericTextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <telerik:RadNumericTextBox ID="Anzahl" Runat="server" Culture="de-DE"
                    DbValue='<%# Bind("Anzahl") %>' Width="50px">
                    <NumberFormat DecimalDigits="0" />
                    <EnabledStyle HorizontalAlign="Right" />
                </telerik:RadNumericTextBox>
            </ItemTemplate>
            <HeaderStyle Width="50px" />
            <ItemStyle Width="50px" HorizontalAlign="Right" />
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn DataField="Preis" DataType="System.Decimal"
            FilterControlAltText="Filter Preis column" HeaderText="Price"
            SortExpression="Preis" UniqueName="Preis" FooterText="Total:">
            <EditItemTemplate>
                <asp:TextBox ID="PreisTextBox" runat="server" Text='<%# Bind("Preis") %>'></asp:TextBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <telerik:RadNumericTextBox ID="Preis" Runat="server"
                    Culture="de-DE" Width="60px" DbValue='<%# Bind("Preis") %>'>
                    <EnabledStyle HorizontalAlign="Right" />
                </telerik:RadNumericTextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <telerik:RadNumericTextBox ID="Preis" Runat="server"
                    Culture="de-DE" DbValue='<%# Bind("Preis") %>'
                    Width="60px">
                    <EnabledStyle HorizontalAlign="Right" />
                </telerik:RadNumericTextBox>
            </ItemTemplate>
            <FooterStyle Font-Bold="True" HorizontalAlign="Right" />
            <HeaderStyle Width="60px" />
            <ItemStyle Width="60px" />
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn FilterControlAltText="Filter Total column"
            HeaderText="Total" UniqueName="Total" ReadOnly="True">
            <InsertItemTemplate>
                <asp:LinkButton ID="Insert" runat="server" CommandName="PerformInsert" ToolTip="Insert"><img src="Image/AddRecord.gif" alt="Insert" style="border-style:none"/></asp:LinkButton>  
                <asp:LinkButton ID="Cancel" runat="server" CommandName="Cancel" ToolTip="Cancel"><img src="Image/Cancel.gif" alt="Cancel" style="border-style:none"/></asp:LinkButton>  
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="lblTotal" runat="server" Width="60px" CssClass="lblCSSright"></asp:Label>
            </ItemTemplate>
            <FooterStyle Font-Bold="True" HorizontalAlign="Right" />
            <HeaderStyle Width="60px" />
            <ItemStyle Width="60px" />
        </telerik:GridTemplateColumn>
        <telerik:GridEditCommandColumn FilterControlAltText="Filter EditCommandColumn column">
        </telerik:GridEditCommandColumn>
    </Columns>
 
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
    <CommandItemStyle Height="25px" />
 
    <CommandItemTemplate>
        <asp:LinkButton ID="lnkAdd" runat="server" CommandName="InitInsert"><img src="Image/AddRecord.gif" style="border-style: none" /> Add</asp:LinkButton>   
        <asp:LinkButton ID="lnkUpd" runat="server" CommandName="UpdateAll"><img src="Image/Update.gif" style="border-style: none"/> Update</asp:LinkButton>   
    </CommandItemTemplate>
 
</MasterTableView>
<FilterMenu EnableImageSprites="False"></FilterMenu>
 
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>
            </telerik:RadGrid>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server"
                ConnectionString="<%$ ConnectionStrings:webzeus %>" SelectCommand="SELECT ArtName, ArtId, CodaKonto
FROM KostenArt ORDER BY ArtName"></asp:SqlDataSource>
            <asp:SqlDataSource ID="SqlDataSource2" runat="server"
                ConnectionString="<%$ ConnectionStrings:webzeus %>"
                 
                SelectCommand="SELECT [kdId], [Number], [ArtId], [Anzahl], [Preis], [Info] FROM [KostenDetail] WHERE ([Number] = @Number)"
                DeleteCommand="DELETE FROM [KostenDetail] WHERE [kdId] = @kdId"
                InsertCommand="INSERT INTO [KostenDetail] ([Number], [ArtId], [Anzahl], [Preis], [Info]) VALUES (@Number, @ArtId, @Anzahl, @Preis, @Info)"
                UpdateCommand="UPDATE [KostenDetail] SET [Number] = @Number, [ArtId] = @ArtId, [Anzahl] = @Anzahl, [Preis] = @Preis, [Info] = @Info WHERE [kdId] = @kdId">
                <DeleteParameters>
                    <asp:Parameter Name="kdId" Type="Int32" />
                </DeleteParameters>
                <InsertParameters>
                    <asp:SessionParameter Name="Number" SessionField="curNumber" Type="Int32" />
                    <%--<asp:Parameter Name="Number" Type="Int32" />--%>
                    <asp:Parameter Name="ArtId" Type="Int32" />
                    <asp:Parameter Name="Anzahl" Type="Int32" />
                    <asp:Parameter Name="Preis" Type="Decimal" />
                    <asp:Parameter Name="Info" Type="String" />
                </InsertParameters>
                <SelectParameters>
                    <asp:SessionParameter Name="Number" SessionField="curNumber" Type="Int32" />
                </SelectParameters>
                <UpdateParameters>
                    <asp:SessionParameter Name="Number" SessionField="curNumber" Type="Int32" />
                    <%--<asp:Parameter Name="Number" Type="Int32" />--%>
                    <asp:Parameter Name="ArtId" Type="Int32" />
                    <asp:Parameter Name="Anzahl" Type="Int32" />
                    <asp:Parameter Name="Preis" Type="Decimal" />
                    <asp:Parameter Name="Info" Type="String" />
                    <asp:Parameter Name="kdId" Type="Int32" />
                </UpdateParameters>
            </asp:SqlDataSource>
Protected Sub RadGrid1_ItemCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.ItemCommand
    If (e.CommandName = "UpdateAll") Then
        For Each editedItem As GridEditableItem In RadGrid1.EditItems
            Dim newValues As Hashtable = New Hashtable
            e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem)
            SqlDataSource2.UpdateCommand = String.Format("UPDATE KostenDetail SET ArtId = '{0}', Anzahl = '{1}', Preis = '{2}', Info = '{3}' WHERE kdId = '{4}'",
                                            newValues("ArtId"), newValues("Anzahl"), newValues("Preis"), newValues("Info"),
                                            editedItem.GetDataKeyValue("kdId").ToString())
            SqlDataSource2.Update()
        Next
    End If
    RadGrid1.Rebind()
End Sub

2 Answers, 1 is accepted

Sort by
0
Marcus
Top achievements
Rank 1
answered on 03 Jun 2011, 11:47 AM
My problem is that RadGrid1.EditItems is empty
0
Iana Tsolova
Telerik team
answered on 08 Jun 2011, 03:18 PM
Hello Marcus,

Can you share the code-behind of the page as well?

All the best,
Iana
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.

Tags
Grid
Asked by
Marcus
Top achievements
Rank 1
Answers by
Marcus
Top achievements
Rank 1
Iana Tsolova
Telerik team
Share this question
or