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

update in radGrid for template column controls

3 Answers 471 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Dileep
Top achievements
Rank 1
Dileep asked on 18 Jun 2009, 10:42 AM
Hi
I am new to radGrid controls.  I am using all the columns as template columns (contains EditItemTemplate,footerTemplate, ItemTemplate using textboxes,comboboxes).
When I try to update the row after editing its not updating with new values again it is going as we click on cancel.
I am using under RadGrid1_UpdateCommand. and using the following code.
 GridEditableItem editedItem = e.Item as GridEditableItem;
            string filterExp = "PRODUCTCODE = '" + editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["PRODUCTCODE"] +"'";
            DataRow[] changedRows = updateItemTable.Select(filterExp);
            Hashtable newValues = new Hashtable();
            e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);
            DataRow changedRow = changedRows[0];
Here in the above code i am not getting the new values as i edited.
Please suggest me the code where I am wrong or if any sample code is available in this scenario request you to pass me.
looking forward to your response.
Thanks,
Dileep



3 Answers, 1 is accepted

Sort by
0
Veli
Telerik team
answered on 19 Jun 2009, 01:01 PM
Hello Dileep,

If you have a GridTemplateColumn with a custom EditItemTemplate and controls you are creating inside it, you cannot use the ExtractValuesFromItem() method, as this method works only for auto-generated column editors. You will need to find the controls inside your EditItemTemplate and ference them by ID:

GridEditableItem item = e.Item as GridEditableItem; 
TextBox txtBox = item.FindControl("NameTextBox"as TextBox; 
string name = txtBox.Text; 

In the above example, NameTextBox is the ID of a TextBox control created in a GridTemplateColumn's EditItemTemplate. You need to find the control in the item's control collection

Regards,
Veli
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Dileep
Top achievements
Rank 1
answered on 20 Jun 2009, 04:51 AM
Hi Veli ,
Thanks for your reply.
I tried as with above code but unable to get the edited new values. it is populating with the same old values. Pls look into the following code. may be i am wrong in somewhere.

protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e) 
        { 
            DataTable updateItemTable = null
            if (Session["ProdGridDetailTable"] != null
            { 
                updateItemTable = (DataTable)Session["ProdGridDetailTable"]; 
            } 
            GridEditableItem editedItem = e.Item as GridEditableItem; 
            if (updateItemTable.Rows.Count > 0) 
            { 
                if (e.CommandName == RadGrid.UpdateCommandName) 
                { 
 
 
                    HiddenField hidPODetailID = editedItem.FindControl("hidPODetailID1"as HiddenField; 
                    updateItemTable.Rows[e.Item.ItemIndex]["PODETAILID"] = hidPODetailID.Value; 
                    RadComboBox rcbPCode = editedItem.FindControl("rcbProductCodeEdit"as RadComboBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["PRODUCTCODE"] = rcbPCode.SelectedValue; 
                    RadTextBox radTxtProductName = editedItem.FindControl("radTxtProductNameEdit"as RadTextBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["PRODUCTNAME"] = radTxtProductName.Text.Trim(); 
                    RadTextBox radTxtOrderQty = editedItem.FindControl("radTxtOrderQtyEdit"as RadTextBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["POQUANTITY"] = radTxtOrderQty.Text.Trim(); 
                    RadComboBox rcbOUOM = editedItem.FindControl("radCmbUOMEdit"as RadComboBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["OUOM"] = rcbOUOM.SelectedItem.Text; 
                    RadTextBox radTxtGrossWeight = editedItem.FindControl("radTxtGrossWeightEdit"as RadTextBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["GROSSWEIGHT"] = radTxtGrossWeight.Text.Trim(); 
                    RadComboBox rcbGUOM = editedItem.FindControl("radCmbGUOMEdit"as RadComboBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["GUOM"] = rcbGUOM.SelectedItem.Text; 
                    RadTextBox radTxtNetWeight = editedItem.FindControl("radTxtNetWeightEdit"as RadTextBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["NETWEIGHT"] = radTxtNetWeight.Text.Trim(); 
                    RadComboBox rcbNUOM = editedItem.FindControl("radCmbNUOMEdit"as RadComboBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["NUOM"] = rcbNUOM.SelectedItem.Text; 
                    RadTextBox radTxtShippedQty = editedItem.FindControl("radTxtShippedQtyEdit"as RadTextBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["SHIPPEDQUANTITY"] = radTxtShippedQty.Text.Trim(); 
                    RadComboBox rcbSUOM = editedItem.FindControl("radCmbSUOMEdit"as RadComboBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["SUOM"] = rcbSUOM.SelectedItem.Text; 
                    RadTextBox radTxtBalanceOrder = editedItem.FindControl("radTxtBalanceOrderEdit"as RadTextBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["BALANCEORDER"] = radTxtBalanceOrder.Text.Trim(); 
                    RadComboBox rcbBUOM = editedItem.FindControl("radCmbBUOMEdit"as RadComboBox; 
                    updateItemTable.Rows[editedItem.ItemIndex]["BUOM"] = rcbBUOM.SelectedItem.Text; 
 
                } 
            } 
            Session["ProdGridDetailTable"] = updateItemTable; 
            this.RadGrid1.DataSource = updateItemTable; 
            this.RadGrid1.DataBind(); 
        } 
and the page code is
<telerik:RadGrid ID="RadGrid1" OnCancelCommand="RadGrid1_ItemCancelingEdit" OnItemDeleted="RadGrid1_ItemDeleted" 
                        OnUpdateCommand="RadGrid1_UpdateCommand" OnItemDataBound="RadGrid1_ItemDataBound" 
                        OnItemCommand="RadGrid1_ItemCommand" runat="server" AllowPaging="True" AutoGenerateColumns="False" 
                        GridLines="None" OnNeedDataSource="RadGrid1_NeedDataSource" ShowFooter="True" 
                        Width="650px"
                        <MasterTableView EditMode="InPlace" DataKeyNames="PODETAILID,PRODUCTCODE" AutoGenerateColumns="false"
                            <Columns> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="Select" ShowFilterIcon="false" 
                                    UniqueName="TempColSelect"
                                    <EditItemTemplate> 
                                        <asp:CheckBox ID="chkItemEdit" runat="server" /> 
                                        <asp:HiddenField ID="hidPODetailID1" runat="server" Value='<%# Bind("PODETAILID") %>' /> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <asp:HiddenField ID="hidPODetailID" runat="server" Value='<%# Eval("PODETAILID") %>' /> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <asp:CheckBox ID="chkItemSelect" runat="server" /> 
                                        <asp:HiddenField ID="hidPODetailIDItem" runat="server" Value='<%# Eval("PODETAILID") %>' /> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="80px" HeaderText="Product Code" ShowFilterIcon="false" 
                                    UniqueName="TempColProdCode"
                                    <EditItemTemplate> 
                                        <telerik:RadComboBox ID="rcbProductCodeEdit" runat="server" DataSourceID="linqDSPOCodes" 
                                            DataTextField="PRODUCT_NAME" DataValueField="PRODUCT_CODE" OnSelectedIndexChanged="RadComboBox1_SelectedIndexChanged" 
                                            Width="80px"
                                        </telerik:RadComboBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadComboBox ID="rcbProductCodeInsert" runat="server" DataSourceID="linqDSPOCodes" 
                                            DataTextField="PRODUCT_NAME" DataValueField="PRODUCT_CODE" OnSelectedIndexChanged="RadComboBox1_SelectedIndexChanged" 
                                            Width="80px"
                                        </telerik:RadComboBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("PRODUCTCODE") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="80px" HeaderText="Product Name" UniqueName="TempColProdName"
                                    <EditItemTemplate> 
                                        <telerik:RadTextBox ID="radTxtProductNameEdit" Text='<%# Bind("PRODUCTNAME") %>' 
                                            runat="server" Width="80px"
                                        </telerik:RadTextBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadTextBox ID="radTxtProductNameInsert" runat="server" Width="80px"
                                        </telerik:RadTextBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("PRODUCTNAME") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="Order Quantity" 
                                    ShowFilterIcon="false" UniqueName="TempColOrderQty"
                                    <EditItemTemplate> 
                                        <telerik:RadTextBox ID="radTxtOrderQtyEdit" Text='<%# Bind("POQUANTITY") %>' runat="server" 
                                            Width="50px"
                                        </telerik:RadTextBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadTextBox ID="radTxtOrderQtyInsert" runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("POQUANTITY") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="UOM" ShowFilterIcon="false" 
                                    UniqueName="TempColOUOM"
                                    <EditItemTemplate> 
                                        <telerik:RadComboBox ID="radCmbUOMEdit" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadComboBox ID="radCmbUOMInsert" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("OUOM")%> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="Gross Weight" ShowFilterIcon="false" 
                                    UniqueName="TempColGrossWeight"
                                    <EditItemTemplate> 
                                        <telerik:RadTextBox ID="radTxtGrossWeightEdit" Text='<%# Bind("GROSSWEIGHT") %>' 
                                            runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadTextBox ID="radTxtGrossWeightInsert" runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("GROSSWEIGHT") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="UOM" ShowFilterIcon="false" 
                                    UniqueName="TempColGUOM"
                                    <EditItemTemplate> 
                                        <telerik:RadComboBox ID="radCmbGUOMEdit" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadComboBox ID="radCmbGUOMInsert" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("GUOM") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="Net Weight" ShowFilterIcon="false" 
                                    UniqueName="TemplateColumn7"
                                    <EditItemTemplate> 
                                        <telerik:RadTextBox ID="radTxtNetWeightEdit" Text='<%# Bind("NETWEIGHT") %>' runat="server" 
                                            Width="50px"
                                        </telerik:RadTextBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadTextBox ID="radTxtNetWeightInsert" runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("NETWEIGHT") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="UOM" ShowFilterIcon="false" 
                                    UniqueName="TemplateColumn8"
                                    <EditItemTemplate> 
                                        <telerik:RadComboBox ID="radCmbNUOMEdit" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadComboBox ID="radCmbNUOMInsert" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("NUOM") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="Shipped Quantity" 
                                    ShowFilterIcon="false" UniqueName="TemplateColumn9"
                                    <EditItemTemplate> 
                                        <telerik:RadTextBox ID="radTxtShippedQtyEdit" Text='<%# Bind("SHIPPEDQUANTITY") %>' 
                                            runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadTextBox ID="radTxtShippedQtyInsert" runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("SHIPPEDQUANTITY") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="UOM" ShowFilterIcon="false" 
                                    UniqueName="TemplateColumn10"
                                    <EditItemTemplate> 
                                        <telerik:RadComboBox ID="radCmbSUOMEdit" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadComboBox ID="radCmbSUOMInsert" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("SUOM") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="Balance Order" 
                                    ShowFilterIcon="false" UniqueName="TemplateColumn11"
                                    <EditItemTemplate> 
                                        <telerik:RadTextBox ID="radTxtBalanceOrderEdit" runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadTextBox ID="radTxtBalanceOrderInsert" runat="server" Width="50px"
                                        </telerik:RadTextBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("BALANCEORDER") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="UOM" ShowFilterIcon="false" 
                                    UniqueName="TemplateColumn12"
                                    <EditItemTemplate> 
                                        <telerik:RadComboBox ID="radCmbBUOMEdit" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <telerik:RadComboBox ID="radCmbBUOMInsert" runat="server" DataSourceID="ObjDSMeasure" 
                                            Width="50px"
                                        </telerik:RadComboBox> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <%# Eval("BUOM") %> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridTemplateColumn FilterControlWidth="30px" HeaderText="Options" ShowFilterIcon="false" 
                                    UniqueName="TemplateColumn13"
                                    <EditItemTemplate> 
                                        <asp:LinkButton ID="lnkBtnUpdate" runat="server" CausesValidation="True" CommandName="Update" 
                                            Text="Update"></asp:LinkButton> 
                                        <asp:LinkButton ID="lnkBtnCancel" runat="server" CausesValidation="False" CommandName="Cancel" 
                                            Text="Cancel"></asp:LinkButton> 
                                    </EditItemTemplate> 
                                    <FooterTemplate> 
                                        <asp:ImageButton ID="imgBtnAdd1" runat="server" Height="16px" ImageUrl="~/Images/plus_icon.gif" 
                                            OnClick="imgBtnAdd_Click" Width="16px" /> 
                                    </FooterTemplate> 
                                    <ItemTemplate> 
                                        <asp:LinkButton ID="lnkBtnEdit" runat="server" CausesValidation="False" CommandName="Edit" 
                                            Text="Edit"
                                        </asp:LinkButton> 
                                        <asp:ImageButton ID="imgBtnDelete" runat="server" Height="16px" ImageUrl="~/Images/minus_icon.gif" 
                                            OnClick="imgBtnDelete_Click" Width="16px" /> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                            </Columns> 
                        </MasterTableView> 
                    </telerik:RadGrid> 
and also help me when i click the edit link button i am unable to see the previous values selected in dropdown boxes.
if possible could you pls post one example similar like edit, update and cancel.
Thanks in advance.
Dileep




0
Veli
Telerik team
answered on 24 Jun 2009, 12:57 PM
Hi Dileep,

Your code seems fine to me. I have created a sample project similar to yours demonstrating the approach we have been discussing. You can take a look at it and see how it applies to your case.

Sincerely yours,
Veli
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
Grid
Asked by
Dileep
Top achievements
Rank 1
Answers by
Veli
Telerik team
Dileep
Top achievements
Rank 1
Share this question
or