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
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
0
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:
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.
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.
and the page code is
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
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(); |
} |
<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> |
if possible could you pls post one example similar like edit, update and cancel.
Thanks in advance.
Dileep
0
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.
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.