Hi,
I have a hierachical grid and i wish the grid to be refreshed after updating the child rows as the parent rows are generated are based on changes to the child rows (item quantity)
I rebind the grid on the 'after updated event' like so
protected void RadGrid1_ItemUpdated(object source, GridUpdatedEventArgs e)
{
RadGrid1.DataBind();
}
This will refresh the grid
however this leaves the Update control open. the html for the grid is as below:
Thanks in advance
Robert Smith
<telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True"
AllowMultiRowEdit="True" AllowPaging="True" AllowAutomaticUpdates="True"
AllowSorting="True" GridLines="None" DataSourceID="sds_requests_by_status"
AutoGenerateColumns="False" AllowAutomaticInserts="True"
AutoGenerateHierarchy="True"
OnNeedDataSource="RadGrid1_NeedDataSource" Skin="WebBlue"
OnItemDataBound="RadGrid1_ItemDataBound"
OnItemCommand="RadGrid1_ItemCommand" oninsertcommand="RadGrid1_InsertCommand" OnItemUpdated="RadGrid1_ItemUpdated">
<MasterTableView DataKeyNames="id" DataSourceID="sds_requests_by_status" EditMode="InPlace">
<DetailTables >
<telerik:GridTableView DataKeyNames="id" DataSourceID="sds_products_by_request" BorderStyle="Solid" BorderWidth ="2px" CommandItemDisplay="Top" Width="100%" runat="server">
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="id" MasterKeyField="id" />
</ParentTableRelation>
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="editcolumn">
<ItemStyle CssClass="MyImageButton" /> </telerik:GridEditCommandColumn>
<telerik:GridBoundColumn SortExpression="id" HeaderText="id" AllowFiltering="False" ReadOnly="True" HeaderButtonType="TextButton"
DataField="id" UniqueName="id" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" SortExpression="session_id" HeaderText="session_id" HeaderButtonType="TextButton"
DataField="session_id" UniqueName="session_id" Visible="False" ReadOnly="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" ReadOnly="True" SortExpression="ss_product_code" HeaderText="product code" HeaderButtonType="TextButton"
DataField="ss_product_code" UniqueName="ss_product_code">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" readonly="True" SortExpression="description" HeaderText="description" HeaderButtonType="TextButton"
DataField="description" UniqueName="description">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" ReadOnly="True" SortExpression="supplier_code" HeaderText="Supplier code" HeaderButtonType="TextButton"
DataField="supplier_code" UniqueName="supplier_code">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" readonly="True" SortExpression="price" HeaderText="Price" HeaderButtonType="TextButton"
DataField="price" UniqueName="price">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" ReadOnly="True" SortExpression="currency_code" HeaderText="Currency code" HeaderButtonType="TextButton"
DataField="currency_code" UniqueName="currency_code">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" ReadOnly="True" SortExpression="quantity" HeaderText="Unit quantity" ColumnEditorID="edit_quantity" HeaderButtonType="TextButton"
DataField="quantity" UniqueName="quantity">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" ReadOnly="True" Visible="False" HeaderText="Product_price_id" ColumnEditorID="edit_product_price_id" HeaderButtonType="TextButton"
DataField="Product_Price_Id" UniqueName="Product_Price_Id">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="editcolumn">
<ItemStyle CssClass="MyImageButton" />
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="id" DataType="System.Int32" HeaderText="Request No." ReadOnly="True"
SortExpression="id" UniqueName="id" >
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn FilterControlWidth="160px" DataField="request_status" DataSourceID="sds_request_status"
HeaderText="Request Status" ListTextField="Request_status" ListValueField="request_status" Display="False"
UniqueName="request_status" ColumnEditorID="GridDropDownColumnEditor1">
<FilterTemplate>
<telerik:RadComboBox ID="RadCbo_Request_status" DataSourceID="sds_request_status" DataTextField="request_status"
DataValueField="request_status" Height="200px" AppendDataBoundItems="true"
SelectedValue='<%#((GridItem)Container).OwnerTableView.GetColumn("request_status").CurrentFilterValue %>'
runat="server" OnClientSelectedIndexChanged="RequestStatusChanged">
<Items>
<telerik:RadComboBoxItem Text="All" />
</Items>
</telerik:RadComboBox>
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<script type="text/javascript">
function RequestStatusChanged(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
tableView.filter("request_status", args.get_item().get_value(), "EqualTo");
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
<HeaderStyle Width="160px" />
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn DataField="request_date" DataType="System.DateTime" ReadOnly="True" HeaderText="Request Date" SortExpression="request_date"
UniqueName="request_date">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="price" DataType="System.Decimal" ReadOnly="True" HeaderText="Value"
SortExpression="price" UniqueName="price">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="first_name" HeaderText="Submitter First Name" ReadOnly="True"
SortExpression="first_name" UniqueName="first_name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="last_name" HeaderText="Submitter Last Name" ReadOnly="True"
SortExpression="last_name" UniqueName="last_name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="user_id" ReadOnly="True" Visible="False" HeaderButtonType="TextButton"
DataField="user_id" UniqueName="user_id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="user_identity" ReadOnly="True" Visible="False" HeaderButtonType="TextButton"
DataField="user_identity" UniqueName="user_identity">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="session_id" HeaderText="Session_id" ReadOnly="True"
SortExpression="session_id" UniqueName="session_id" Visible="False">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="volume" ReadOnly="true" HeaderText="Volume m<sup>3</sup>" SortExpression="volume"
UniqueName="Volume">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" DataField="weight" HeaderText="weight kg" SortExpression="weight"
UniqueName="weight">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" DataField="airFrieghtweight" HeaderText="Air freight weight"
SortExpression="airFrieghtweight" UniqueName="airFrieghtweight">
</telerik:GridBoundColumn>
</Columns>
<ExpandCollapseColumn Visible="True">
</ExpandCollapseColumn>
</MasterTableView>
<ClientSettings>
<ClientEvents OnFilterMenuShowing="filterMenuShowing" />
<Selecting AllowRowSelect="True" />
</ClientSettings>
<FilterMenu OnClientShown="RestrictedMenuShowing" />
</telerik:RadGrid>
I have a hierachical grid and i wish the grid to be refreshed after updating the child rows as the parent rows are generated are based on changes to the child rows (item quantity)
I rebind the grid on the 'after updated event' like so
protected void RadGrid1_ItemUpdated(object source, GridUpdatedEventArgs e)
{
RadGrid1.DataBind();
}
This will refresh the grid
however this leaves the Update control open. the html for the grid is as below:
Thanks in advance
Robert Smith
<telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True"
AllowMultiRowEdit="True" AllowPaging="True" AllowAutomaticUpdates="True"
AllowSorting="True" GridLines="None" DataSourceID="sds_requests_by_status"
AutoGenerateColumns="False" AllowAutomaticInserts="True"
AutoGenerateHierarchy="True"
OnNeedDataSource="RadGrid1_NeedDataSource" Skin="WebBlue"
OnItemDataBound="RadGrid1_ItemDataBound"
OnItemCommand="RadGrid1_ItemCommand" oninsertcommand="RadGrid1_InsertCommand" OnItemUpdated="RadGrid1_ItemUpdated">
<MasterTableView DataKeyNames="id" DataSourceID="sds_requests_by_status" EditMode="InPlace">
<DetailTables >
<telerik:GridTableView DataKeyNames="id" DataSourceID="sds_products_by_request" BorderStyle="Solid" BorderWidth ="2px" CommandItemDisplay="Top" Width="100%" runat="server">
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="id" MasterKeyField="id" />
</ParentTableRelation>
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="editcolumn">
<ItemStyle CssClass="MyImageButton" /> </telerik:GridEditCommandColumn>
<telerik:GridBoundColumn SortExpression="id" HeaderText="id" AllowFiltering="False" ReadOnly="True" HeaderButtonType="TextButton"
DataField="id" UniqueName="id" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" SortExpression="session_id" HeaderText="session_id" HeaderButtonType="TextButton"
DataField="session_id" UniqueName="session_id" Visible="False" ReadOnly="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" ReadOnly="True" SortExpression="ss_product_code" HeaderText="product code" HeaderButtonType="TextButton"
DataField="ss_product_code" UniqueName="ss_product_code">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" readonly="True" SortExpression="description" HeaderText="description" HeaderButtonType="TextButton"
DataField="description" UniqueName="description">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" ReadOnly="True" SortExpression="supplier_code" HeaderText="Supplier code" HeaderButtonType="TextButton"
DataField="supplier_code" UniqueName="supplier_code">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn AllowFiltering="False" readonly="True" SortExpression="price" HeaderText="Price" HeaderButtonType="TextButton"
DataField="price" UniqueName="price">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" ReadOnly="True" SortExpression="currency_code" HeaderText="Currency code" HeaderButtonType="TextButton"
DataField="currency_code" UniqueName="currency_code">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" ReadOnly="True" SortExpression="quantity" HeaderText="Unit quantity" ColumnEditorID="edit_quantity" HeaderButtonType="TextButton"
DataField="quantity" UniqueName="quantity">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn allowfiltering="False" ReadOnly="True" Visible="False" HeaderText="Product_price_id" ColumnEditorID="edit_product_price_id" HeaderButtonType="TextButton"
DataField="Product_Price_Id" UniqueName="Product_Price_Id">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="editcolumn">
<ItemStyle CssClass="MyImageButton" />
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="id" DataType="System.Int32" HeaderText="Request No." ReadOnly="True"
SortExpression="id" UniqueName="id" >
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn FilterControlWidth="160px" DataField="request_status" DataSourceID="sds_request_status"
HeaderText="Request Status" ListTextField="Request_status" ListValueField="request_status" Display="False"
UniqueName="request_status" ColumnEditorID="GridDropDownColumnEditor1">
<FilterTemplate>
<telerik:RadComboBox ID="RadCbo_Request_status" DataSourceID="sds_request_status" DataTextField="request_status"
DataValueField="request_status" Height="200px" AppendDataBoundItems="true"
SelectedValue='<%#((GridItem)Container).OwnerTableView.GetColumn("request_status").CurrentFilterValue %>'
runat="server" OnClientSelectedIndexChanged="RequestStatusChanged">
<Items>
<telerik:RadComboBoxItem Text="All" />
</Items>
</telerik:RadComboBox>
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<script type="text/javascript">
function RequestStatusChanged(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
tableView.filter("request_status", args.get_item().get_value(), "EqualTo");
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
<HeaderStyle Width="160px" />
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn DataField="request_date" DataType="System.DateTime" ReadOnly="True" HeaderText="Request Date" SortExpression="request_date"
UniqueName="request_date">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="price" DataType="System.Decimal" ReadOnly="True" HeaderText="Value"
SortExpression="price" UniqueName="price">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="first_name" HeaderText="Submitter First Name" ReadOnly="True"
SortExpression="first_name" UniqueName="first_name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="last_name" HeaderText="Submitter Last Name" ReadOnly="True"
SortExpression="last_name" UniqueName="last_name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="user_id" ReadOnly="True" Visible="False" HeaderButtonType="TextButton"
DataField="user_id" UniqueName="user_id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="user_identity" ReadOnly="True" Visible="False" HeaderButtonType="TextButton"
DataField="user_identity" UniqueName="user_identity">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="session_id" HeaderText="Session_id" ReadOnly="True"
SortExpression="session_id" UniqueName="session_id" Visible="False">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="volume" ReadOnly="true" HeaderText="Volume m<sup>3</sup>" SortExpression="volume"
UniqueName="Volume">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" DataField="weight" HeaderText="weight kg" SortExpression="weight"
UniqueName="weight">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" DataField="airFrieghtweight" HeaderText="Air freight weight"
SortExpression="airFrieghtweight" UniqueName="airFrieghtweight">
</telerik:GridBoundColumn>
</Columns>
<ExpandCollapseColumn Visible="True">
</ExpandCollapseColumn>
</MasterTableView>
<ClientSettings>
<ClientEvents OnFilterMenuShowing="filterMenuShowing" />
<Selecting AllowRowSelect="True" />
</ClientSettings>
<FilterMenu OnClientShown="RestrictedMenuShowing" />
</telerik:RadGrid>