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

Update grid programically fromtextBox template

0 Answers 49 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Annette
Top achievements
Rank 1
Annette asked on 07 Jun 2011, 03:39 PM
I have a template in my grid that has a radtextbox in it.  When updating the field, I'm having issues updating the data programmically.

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;

 

 

}

 

 

 

No answers yet. Maybe you can help?

Tags
Grid
Asked by
Annette
Top achievements
Rank 1
Share this question
or