ASPX:
<telerik:RadGrid ID="grdProducts" runat="server" Skin="DMID" AutoGenerateColumns="False"
GridLines="None" GroupingEnabled="False" PageSize="5" AllowPaging="True" EnableEmbeddedSkins="False"
AllowSorting="True" CellSpacing="0" Width="90%" OnNeedDataSource="grdProducts_NeedDataSource"
OnUpdateCommand="grdProducts_UpdateCommand" Height="300px" ShowStatusBar="True"
OnPreRender="grdProducts_PreRender" >
<HeaderContextMenu EnableEmbeddedSkins="False" CssClass="GridContextMenu GridContextMenu_DMID">
</HeaderContextMenu>
<MasterTableView NoMasterRecordsText="No supplies available." TableLayout="Fixed"
DataKeyNames="SupplyID" AllowAutomaticUpdates="True" EditMode="InPlace">
<CommandItemSettings ExportToPdfText="Export to Pdf" />
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
</RowIndicatorColumn>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn FilterControlAltText="Filter ID column" ReadOnly="True"
SortExpression="SupplyID" UniqueName="SupplyID" DataField="SupplyID" Visible="false"
DataType="System.Int32">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn FilterControlAltText="Filter Product column" HeaderText="Product"
DataType="System.String" ReadOnly="True" SortExpression="Product" UniqueName="Product"
DataField="Product">
<HeaderStyle HorizontalAlign="Center" Width="15%" />
<ItemStyle HorizontalAlign="Left" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn FilterControlAltText="Filter Description column" HeaderText="Description"
ReadOnly="True" SortExpression="Description" UniqueName="Description" DataField="Description">
<HeaderStyle HorizontalAlign="Center" Width="20%" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn FilterControlAltText="Filter Shipping Unit column" HeaderText="Shipping Unit"
ReadOnly="True" SortExpression="ShippingUnit" UniqueName="ShippingUnit" DataField="ShippingUnit">
<HeaderStyle HorizontalAlign="Center" Width="15%" />
<ItemStyle HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataType="System.Int32" FilterControlAltText="Filter Units Requested column"
HeaderText="Units Requested" SortExpression="URequested" UniqueName="URequested"
DataField="URequested">
<HeaderStyle HorizontalAlign="Center" Width="7%" />
<ItemStyle HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataType="System.Boolean" FilterControlAltText="Filter Display column"
HeaderText="Display" SortExpression="Display" UniqueName="Display" DataField="Display"
Visible="false" ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn column"
HeaderText="Comments" UniqueName="txtComments" DataField="Comments" >
<HeaderStyle HorizontalAlign="Center" Width="30%" />
<ItemTemplate>
<telerik:RadTextBox ID="txtComments" Runat="server" Columns="30"
TextMode="MultiLine" Width="150px" Text='<%# Eval("Comments") %>' Enabled="false">
</telerik:RadTextBox>
</
ItemTemplate>
<EditItemTemplate>
<telerik:RadTextBox ID="txtComments" Runat="server" Columns="30"
TextMode="MultiLine" Width="150px" EnableEmbeddedSkins="false" Skin="DMID" Text='<%# Bind("Comments") %>'>
</telerik:RadTextBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderText=""
Visible="true" ButtonType="ImageButton">
<HeaderStyle HorizontalAlign="Center" Width="40%" />
</telerik:GridEditCommandColumn>
</Columns>
<EditFormSettings>
<
EditColumn InsertImageUrl="Update.gif" UpdateImageUrl="Update.gif" EditImageUrl="Edit.gif" CancelImageUrl="Cancel.gif" UniqueName="EditCommandColumn1" FilterControlAltText="Filter EditCommandColumn1 column"></EditColumn>
</
EditFormSettings>
</MasterTableView>
<ClientSettings Scrolling-AllowScroll="true" EnableRowHoverStyle="true" Selecting-AllowRowSelect="true">
<Resizing AllowColumnResize="true" />
<Selecting AllowRowSelect="True" />
<Scrolling AllowScroll="true" UseStaticHeaders="true" />
</ClientSettings>
<FilterMenu EnableImageSprites="False" EnableEmbeddedSkins="False">
</FilterMenu>
</telerik:RadGrid>
c#:
protected void grdProducts_UpdateCommand(object sender, GridCommandEventArgs e)
{
lblTableError.Text += " Table to be updated: " + e.Item.OwnerTableView.DataMember + "<br>";
GridEditableItem editedItem = e.Item as GridEditableItem;
GridEditManager editMan = editedItem.EditManager;
DataTable GridSource = (DataTable)ViewState["Products"];
string operation = string.Empty;
foreach (GridColumn column in e.Item.OwnerTableView.RenderColumns)
{
if (column is IGridEditableColumn)
{
IGridEditableColumn editableCol = (column as IGridEditableColumn);
if (editableCol.IsEditable)
{
try
{
IGridColumnEditor editor = editMan.GetColumnEditor(editableCol);
string editorText = "unknown";
string oldEditorText = "";
object editorValue = null;
if (editor is GridTextColumnEditor)
{
editorText = (editor as GridTextColumnEditor).Text;
editorValue = (editor as GridTextColumnEditor).Text;
}
if (editor is GridTemplateColumnEditor)
{
GridEditableItem item = e.Item as GridEditableItem;
editorValue = (item.FindControl("txtComments") as RadTextBox).Text;
}
DataRow[] changedRows = GridSource.Select("SupplyID = '" + editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["SupplyID"].ToString() + "'");
changedRows[0][column.UniqueName] = editorValue;
GridSource.AcceptChanges();
ViewState["Products"] = GridSource;
}
catch (Exception ex)
{
lblTableError.Text = "<strong>Unable to set value of column '" + column.UniqueName + "'</strong> - " + ex.Message;
e.Canceled = true;
break;
}
}
}
}
grdProducts.Rebind();
e.Item.Edit = false;
}