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

Refresh hierachical grid after update

1 Answer 110 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Mark
Top achievements
Rank 1
Mark asked on 15 Feb 2010, 04:59 PM
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>







1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 16 Feb 2010, 07:05 AM
Hi,

You can clear the EditIndexes collection  to close the edit form after the update as shown below:

  RadGrid1.EditIndexes.Clear(); 
  RadGrid1.Rebind(); 

Also check the following link on how to perform Automatic operations in  hierarchial grid:
Automatic operations in hierarchical grid with SqlDataSource control

Hope this helps.

Thanks,
Princy
Tags
Grid
Asked by
Mark
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or