{"id":9809,"date":"2025-03-24T12:28:22","date_gmt":"2025-03-24T12:28:22","guid":{"rendered":"https:\/\/www.aegissofttech.com\/insights\/?p=9809"},"modified":"2026-05-15T14:30:41","modified_gmt":"2026-05-15T14:30:41","slug":"filter-sub-grid-rows-dynamics-365","status":"publish","type":"post","link":"https:\/\/www.aegissofttech.com\/insights\/filter-sub-grid-rows-dynamics-365\/","title":{"rendered":"How to Filter Sub-Grid Rows in Dynamics 365 CE Easily"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">If you\u2019ve spent time customizing Dynamics 365 Customer Engagement (CE), you\u2019ve probably seen sub-grids filled with rows that don\u2019t belong there: inactive leads, closed deals, or records that add clutter instead of insight.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over time, these unfiltered grids slow users down and make it harder to focus on what\u2019s relevant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Filtering changes that experience completely. With the right configuration, you can filter sub-grid rows in Dynamics 365 to display only the records that matter, like open opportunities tied to an account or recent activities linked to a contact.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog post, we\u2019ll explore practical ways to achieve that using view filters, FetchXML, and JavaScript, while keeping your customizations efficient and easy to maintain. Let\u2019s get started!<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Key Takeaways<\/strong><\/p>\n\n\n\n<div style=\"border:1px solid #000; padding:15px; margin:20px 0;\">\n<p>Get started with customizing sub-grid filters in Dynamics 365 using these methods:<\/p>\n<strong>Method 1: Static View (No Code)<\/strong>\n<ul style=\"margin-top:10px; line-height:1.6;\">\n<li>Create a custom view and define filter conditions like Status = Active.<\/li>\n<li>Select and arrange columns, then save and publish.<\/li>\n<li>Open the parent form, assign the sub-grid, and set the Default View to your custom view.<\/li>\n<li>Save, publish, and verify the filtered records.<\/li>\n<\/ul>\n<strong>Method 2: JavaScript (Dynamic Filter)<\/strong>\n<ul style=\"margin-top:10px; line-height:1.6;\">\n<li>Create a JavaScript web resource in Power Apps.<\/li>\n<li>Write a function using setFilterXml() and refresh() to apply FetchXML filters.<\/li>\n<li>Add the JS library to the form and register the function on OnLoad and OnChange events.<\/li>\n<li>Use the correct sub-grid name, then save, publish, and test for real-time filtering.<\/li>\n<\/ul>\n<strong>Method 3: Quick View + Sub-Grid (Low-Code)<\/strong>\n<ul style=\"margin-top:10px; line-height:1.6;\">\n<li>Create a Quick View form for the related entity and add key fields.<\/li>\n<li>Place the Quick View and a filtered sub-grid on the parent form.<\/li>\n<li>Add business rules to show or hide the Quick View based on field conditions.<\/li>\n<li>Save, publish, and test the setup for proper filtered display.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Why is Sub-Grid Filtering in Dynamics CRM Important?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s why learning to filter sub-grid rows in Dynamics 365 matters:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keeps every form focused by showing only the most relevant related records for that specific context<\/li>\n\n\n\n<li>Helps users work smarter by displaying data tied to their goals, like open deals or pending invoices<\/li>\n\n\n\n<li>Brings clarity to decision-making with only the data that truly matters in view<\/li>\n\n\n\n<li>Adapts automatically when paired with dynamic filters that respond to parent record values<\/li>\n\n\n\n<li>Creates a consistent data experience across departments with standardized filtering logic<\/li>\n\n\n\n<li>Enhances reporting accuracy by ensuring only valid, up-to-date records feed into analysis tools<\/li>\n<\/ul>\n\n\n\n<section class=\"call-to-action-section\">\n<div class=\"call-to-action-container\">\n<div class=\"call-to-action-body\">\n<div class=\"cta-title\"><\/div>\n<p><\/p>\n<div style=\"text-align:center; color:white;\">\n<strong>Also Read:<\/strong> <a href=\"https:\/\/www.aegissofttech.com\/insights\/what-is-microsoft-dynamics-crm\/\" target=\"_blank\">What is Microsoft Dynamics CRM and What is it Used For?<\/a><\/div>\n<p><\/p>\n<\/div>\n<\/div>\n<\/section>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1: Filter With a Static View<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most straightforward way to filter sub-grid rows in Dynamics 365 involves configuring a static view at the sub-grid level. This method requires no coding and allows administrators to control which records appear based on predefined criteria.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step #1: Create a Custom View for the Related Entity<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"592\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Power-Apps-maker-portal-to-filter-sub-grid-rows-in-Dynamics-365.webp\" alt=\"Power Apps maker portal to filter sub-grid rows in Dynamics 365\" class=\"wp-image-19353\" title=\"Power Apps maker portal to filter sub-grid rows in Dynamics 365\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Power-Apps-maker-portal-to-filter-sub-grid-rows-in-Dynamics-365.webp 1024w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Power-Apps-maker-portal-to-filter-sub-grid-rows-in-Dynamics-365-300x173.webp 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Power-Apps-maker-portal-to-filter-sub-grid-rows-in-Dynamics-365-768x444.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">via <a href=\"https:\/\/community.dynamics.com\/blogs\/post\/?postid=96751964-6126-487e-a8db-dba4eb1fb00a\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Dynamics 365 Community<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before you can apply a filter to your sub-grid, you need a view that contains the filtering logic. Navigate to the <a href=\"http:\/\/make.powerapps.com\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Power Apps maker portal<\/a> and follow these steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Select <strong>Solutions<\/strong> from the left navigation panel.<\/li>\n\n\n\n<li>Open the solution that contains your target entity (e.g., Contacts, Opportunities, Cases).<\/li>\n\n\n\n<li>Locate the entity that will appear in the sub-grid and click to expand it.<\/li>\n\n\n\n<li>Select <strong>Views<\/strong> from the entity components list.<\/li>\n\n\n\n<li>Click <strong>New view<\/strong> (or <strong>Add view,<\/strong> depending on your interface version).<\/li>\n\n\n\n<li>Give your view a descriptive name, such as &#8220;Active Contacts &#8211; This Year&#8221; or &#8220;Open Opportunities &#8211; High Value.&#8221;<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #2: Define Filter Criteria in the View<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once you&#8217;ve created the view, you need to specify which records qualify for display:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the view editor, click <strong>Edit filters<\/strong> in the command bar.<\/li>\n\n\n\n<li>Add filter conditions based on your requirements. For example:\n<ul class=\"wp-block-list\">\n<li><strong>Status Equals Active<\/strong> to show records with an active status<\/li>\n\n\n\n<li><strong>Created On This Year<\/strong> to display records created in the current calendar year<\/li>\n\n\n\n<li><strong>Owner Equals Current User<\/strong> to show records owned by the person viewing the form<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Combine multiple conditions using <strong>AND<\/strong> or <strong>OR<\/strong> logic as needed.<\/li>\n\n\n\n<li>Click <strong>OK<\/strong> to apply the filter.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #3: Select Columns to Display<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Choose which fields appear in the sub-grid:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the view editor, you&#8217;ll see a column list on the right side.<\/li>\n\n\n\n<li>Click <strong>Add column<\/strong> to include additional fields.<\/li>\n\n\n\n<li>Remove unnecessary columns by clicking the <strong>X<\/strong> next to each column name.<\/li>\n\n\n\n<li>Drag columns to reorder them according to priority.<\/li>\n\n\n\n<li>Click <strong>Save<\/strong> to preserve your view configuration.<\/li>\n\n\n\n<li>Click <strong>Publish<\/strong> to make the view available across the organization.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Configure the Sub-Grid to Use Your Custom View<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now that your filtered view exists, you can apply it to a sub-grid on a form:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate back to <strong>Solutions<\/strong> and open the solution containing your form.<\/li>\n\n\n\n<li>Expand the parent entity (e.g., Account, Contact) and select <strong>Forms<\/strong>.<\/li>\n\n\n\n<li>Open the main form where you want to configure the sub-grid.<\/li>\n\n\n\n<li>Click on the existing sub-grid control, or insert a new one by dragging <strong>Subgrid<\/strong> from the component panel onto the form canvas.<\/li>\n\n\n\n<li>In the properties panel on the right, locate the <strong>Data Source<\/strong> section.<\/li>\n\n\n\n<li>Verify that the <strong>Table<\/strong> field shows the correct related entity.<\/li>\n\n\n\n<li>In the <strong>Default view<\/strong> dropdown, select the custom view you created in the previous steps.<\/li>\n\n\n\n<li>Optionally, enable or disable <a href=\"https:\/\/www.aegissofttech.com\/insights\/ms-dynamics-crm-features\/\" target=\"_blank\" rel=\"noreferrer noopener\">Dynamics CRM features<\/a> like <strong>Show search box<\/strong> or <strong>Show chart<\/strong> based on your requirements.<\/li>\n\n\n\n<li>Click <strong>Save<\/strong> to preserve your form changes.<\/li>\n\n\n\n<li>Click <strong>Publish<\/strong> to make the updated form available to users.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #5: Verify the Filter in Action<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After publishing, test the configuration to confirm the sub-grid displays the correct records:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open a record of the parent entity (e.g., an Account record).<\/li>\n\n\n\n<li>Scroll to the section containing your sub-grid.<\/li>\n\n\n\n<li>Verify that the sub-grid shows records matching your filter criteria.<\/li>\n\n\n\n<li>If the results look incorrect, return to the view editor and adjust the filter conditions.<\/li>\n<\/ol>\n\n\n\n<section class=\"call-to-action-section\">\n<div class=\"call-to-action-container\">\n<div class=\"call-to-action-body\">\n<div class=\"cta-title\"><\/div>\n<p><\/p>\n<div style=\"text-align:center; color:white;\">\n<strong>Also Read:<\/strong> <a href=\"https:\/\/www.aegissofttech.com\/insights\/dynamics-365-crm-using-ai\/\" target=\"_blank\">Automate and Optimize Dynamics 365 CRM Using AI<\/a><\/div>\n<p><\/p>\n<\/div>\n<\/div>\n<\/section>\n\n\n\n<h3 class=\"wp-block-heading\">When to Use Static View Filtering<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This approach works well for scenarios where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Filter criteria remain constant across all users and records<\/li>\n\n\n\n<li>You need a reusable filter that applies to multiple forms<\/li>\n\n\n\n<li>Non-technical administrators will maintain the configuration<\/li>\n\n\n\n<li>Performance matters, since views execute server-side with optimized queries<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Method 2: JavaScript for Dynamic Filtering<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JavaScript provides the flexibility to apply filters programmatically. This method allows you to update sub-grid data based on field values, user selections, or custom business logic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step #1: Create a JavaScript Web Resource<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"868\" height=\"527\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Dynamics-365-CE-sub-grid-filtering-with-JavaScript.webp\" alt=\"Dynamics 365 CE sub-grid filtering with JavaScript\" class=\"wp-image-19354\" title=\"Dynamics 365 CE sub-grid filtering with JavaScript\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Dynamics-365-CE-sub-grid-filtering-with-JavaScript.webp 868w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Dynamics-365-CE-sub-grid-filtering-with-JavaScript-300x182.webp 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Dynamics-365-CE-sub-grid-filtering-with-JavaScript-768x466.webp 768w\" sizes=\"(max-width: 868px) 100vw, 868px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Before writing any code, you need a place to store your JavaScript functions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the Power Apps maker portal and navigate to <strong>Solutions<\/strong>.<\/li>\n\n\n\n<li>Select the solution where you want to add the script.<\/li>\n\n\n\n<li>Click <strong>New<\/strong> &gt; <strong>More<\/strong> &gt; <strong>Web resource<\/strong>.<\/li>\n\n\n\n<li>Fill in the web resource details:\n<ul class=\"wp-block-list\">\n<li><strong>Name: <\/strong>Give it a unique name like &#8220;AccountSubgridFilter&#8221;<\/li>\n\n\n\n<li><strong>Display name: <\/strong>Use a descriptive name like &#8220;Account Subgrid Filtering Script&#8221;<\/li>\n\n\n\n<li><strong>Type:<\/strong> Select <strong>JavaScript (JS)<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Choose file<\/strong> and upload a blank JavaScript file (you can create one in Notepad and save it as .js), or write your code directly in the editor if available.<\/li>\n\n\n\n<li>Click <strong>Save<\/strong> to create the web resource.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #2: Write the Filtering Function<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now you&#8217;ll write the JavaScript function that applies the filter.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IS.HPSAAccountPlanning.filterOpportunitiesSubgrid = function (formContext)\n{\n\tvar accountControl = formContext.getAttribute(\"infy_account\").getValue();\n\tif (accountControl)\n\t{\n\t\tvar accountId = accountControl&#091;0].id;\n\t\tvar fetchXml = \"&lt;fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'&gt;\" +\n\t\t\t\"&lt;entity name='opportunity'&gt;\" +\n\t\t\t\"&lt;attribute name='name' \/&gt;\" +\n\t\t\t\"&lt;filter type='and'&gt;\" +\n\t\t\t\"&lt;condition attribute='parentaccountid' operator='eq' uitype='account' value='\" + accountId + \"' \/&gt;\" +\n\t\t\t\"&lt;\/filter&gt;\" +\n\t\t\t\"&lt;\/entity&gt;\" +\n\t\t\t\"&lt;\/fetch&gt;\";\n\t\t\/\/ Set the fetchXml to the subgrid\n\t\tvar gridControl = formContext.getControl(\"subgrid_opportunities\");\n\t\tif (gridControl)\n\t\t{\n\t\t\tgridControl.setFilterXml(fetchXml);\n\t\t\tgridControl.refresh();\n\t\t}\n\t}\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Copy this code into your web resource, then click <strong>Save<\/strong> and <strong>Publish<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step #3: Attach the Web Resource to the Form<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"862\" height=\"409\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Customizing-sub-grid-filters-CRM.webp\" alt=\"\" class=\"wp-image-19355\" title=\"Customizing sub-grid filters CRM\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Customizing-sub-grid-filters-CRM.webp 862w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Customizing-sub-grid-filters-CRM-300x142.webp 300w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Customizing-sub-grid-filters-CRM-768x364.webp 768w\" sizes=\"(max-width: 862px) 100vw, 862px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Connect your JavaScript file to the form so <a href=\"https:\/\/www.aegissofttech.com\/dynamics-365\/crm\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Dynamics 365 CRM<\/a> can execute the functions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate to your solution and open the form where the sub-grid exists.<\/li>\n\n\n\n<li>In the form designer, look for the <strong>Form libraries<\/strong> section (usually in the left panel or under form properties).<\/li>\n\n\n\n<li>Click <strong>Add library<\/strong>.<\/li>\n\n\n\n<li>Search for and select the web resource you created in Step #1.<\/li>\n\n\n\n<li>Click <strong>Add<\/strong> to attach it to the form.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #4: Register the Function as an Event Handler<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tell Dynamics 365 when to execute your filtering function:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>While still in the form designer, locate the <strong>Events<\/strong> section in the left panel.<\/li>\n\n\n\n<li>Expand <strong>Form<\/strong> &gt; <strong>OnLoad<\/strong> to register a function that runs when the form loads.<\/li>\n\n\n\n<li>Click <strong>Add event handler<\/strong>.<\/li>\n\n\n\n<li>In the handler configuration:\n<ul class=\"wp-block-list\">\n<li><strong>Library: <\/strong>Select your web resource<\/li>\n\n\n\n<li><strong>Function: <\/strong>Enter the exact function name (e.g., filterContactsByIndustry)<\/li>\n\n\n\n<li><strong>Enabled: <\/strong>Check this box<\/li>\n\n\n\n<li><strong>Pass execution context:<\/strong> Check this box (critical for the function to work)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Done<\/strong> to save the event handler.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #5: Add Dynamic Filtering on Field Change<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To update the sub-grid when a field value changes, register the function on a field&#8217;s OnChange event:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the form designer, click on the field that should trigger the filter (e.g., the Industry field).<\/li>\n\n\n\n<li>In the properties panel, locate the <strong>Events<\/strong> tab.<\/li>\n\n\n\n<li>Click <strong>OnChange<\/strong> to expand the event section.<\/li>\n\n\n\n<li>Click <strong>Add event handler<\/strong>.<\/li>\n\n\n\n<li>Configure the handler:\n<ul class=\"wp-block-list\">\n<li><strong>Library:<\/strong> Select your web resource<\/li>\n\n\n\n<li><strong>Function:<\/strong> Enter filterContactsByIndustry<\/li>\n\n\n\n<li><strong>Enabled:<\/strong> Check this box<\/li>\n\n\n\n<li><strong>Pass execution context: <\/strong>Check this box<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Done<\/strong> to save.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Now, whenever a user changes the industry value, the sub-grid automatically refreshes with filtered results.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step #6: Find the Sub-Grid Name<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re unsure of the sub-grid&#8217;s name, follow these steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the form designer, click on the sub-grid control.<\/li>\n\n\n\n<li>In the properties panel on the right, look for the <strong>Name<\/strong> field under the <strong>Display<\/strong> section.<\/li>\n\n\n\n<li>Copy this exact name (case-sensitive) and use it in your JavaScript code where you call formContext.getControl(&#8220;SubgridName&#8221;).<\/li>\n<\/ol>\n\n\n    \t<section class=\"call-to-action-section\">\n    \t\t<div class=\"call-to-action-container\">\n    \t\t\t<div class=\"call-to-action-body\">\n    \t\t\t\t<div class=\"cta-title\"><\/div>\n    \t\t\t\t<p><\/p>\n<div style='text-align:left; color:white;'>\n<a href=\"https:\/\/www.aegissofttech.com\" target=\"_blank\">Aegis Softtech<\/a> builds JavaScript solutions that won\u2019t break when Microsoft rolls out the next update. Our team follows Microsoft\u2019s latest client API guidelines to keep your customizations compliant.<\/div>\n<p><\/p>\n    \t\t\t<\/div>\n    \t\t\t    \t\t\t\t<div class=\"call-to-action-btn\">\n    \t\t\t\t\t<a href=\"https:\/\/www.aegissofttech.com\/contact-us.html\">Get in Touch to Enable Filtering<\/a>\n    \t\t\t\t<\/div>\n    \t\t\t    \t\t<\/div>\n    \t<\/section>\n    \n\n\n\n<h3 class=\"wp-block-heading\">Step #7: Test the Dynamic Filtering<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Verify that your JavaScript executes correctly:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>Save<\/strong> and <strong>Publish<\/strong> the form.<\/li>\n\n\n\n<li>Open a record of the parent entity.<\/li>\n\n\n\n<li>Change the field value that triggers the filter (e.g., select a different industry).<\/li>\n\n\n\n<li>Watch the sub-grid refresh automatically with filtered results.<\/li>\n\n\n\n<li>If the sub-grid does not update, <strong>press F12<\/strong> to open browser developer tools and check the Console tab for JavaScript errors.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">When to Use JavaScript for Dynamic Filtering<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This approach works well for scenarios where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Filter criteria must change based on user selections or form field values<\/li>\n\n\n\n<li>You need real-time sub-grid updates without page refreshes<\/li>\n\n\n\n<li>Different users should see different filtered results based on form context<\/li>\n\n\n\n<li>Business logic requires complex conditional filtering that cannot be achieved with static views<\/li>\n\n\n\n<li>The sub-grid must respond to multiple field changes simultaneously<\/li>\n\n\n\n<li>You need to combine data from form fields with external calculations or API calls to determine filter criteria<\/li>\n<\/ul>\n\n\n\n<section class=\"call-to-action-section\">\n<div class=\"call-to-action-container\">\n<div class=\"call-to-action-body\">\n<div class=\"cta-title\"><\/div>\n<p><\/p>\n<div style=\"text-align:center; color:white;\">\n<strong>Also Read:<\/strong> <a href=\"https:\/\/www.aegissofttech.com\/insights\/ultimate-dynamics-365-crm-guide\/\" target=\"_blank\">The Ultimate Dynamics 365 CRM Guide for Business Success<\/a><\/div>\n<p><\/p>\n<\/div>\n<\/div>\n<\/section>\n\n\n\n<h2 class=\"wp-block-heading\">Method 3: Low-Code With Quick View Forms<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quick view forms provide a low-code alternative for displaying filtered related data without writing JavaScript or creating custom views.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While quick view forms traditionally show read-only data from a single related record, you can combine them with filtered sub-grids to create a streamlined user experience that requires minimal technical configuration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step #1: Create a Quick View Form<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"442\" src=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Quick-view-forms-to-filter-sub-grid-rows-in-Dynamics-365.webp\" alt=\"Quick view forms to filter sub-grid rows in Dynamics 365\" class=\"wp-image-19356\" title=\"Quick view forms to filter sub-grid rows in Dynamics 365\" srcset=\"https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Quick-view-forms-to-filter-sub-grid-rows-in-Dynamics-365.webp 550w, https:\/\/www.aegissofttech.com\/insights\/wp-content\/uploads\/2025\/03\/Quick-view-forms-to-filter-sub-grid-rows-in-Dynamics-365-300x241.webp 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">via <a href=\"https:\/\/community.dynamics.com\/blogs\/post\/?postid=efaa650d-adb8-4618-817b-79c255a2bf08\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Dynamics 365 Community<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start by building the quick view form that will display related record data:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the Power Apps maker portal and navigate to <strong>Solutions<\/strong>.<\/li>\n\n\n\n<li>Select your solution and expand the related entity (the entity that appears in the sub-grid).<\/li>\n\n\n\n<li>Click on <strong>Forms<\/strong> under the entity components.<\/li>\n\n\n\n<li>Click <strong>New form<\/strong> &gt; <strong>Quick view form<\/strong>.<\/li>\n\n\n\n<li>Give your form a name like &#8220;Contact Summary&#8221; or &#8220;Opportunity Snapshot.&#8221;<\/li>\n\n\n\n<li>Drag fields from the field list onto the form canvas. Include relevant fields like:\n<ul class=\"wp-block-list\">\n<li>Name or title field<\/li>\n\n\n\n<li>Status or state field<\/li>\n\n\n\n<li>Key metrics (e.g., estimated value, priority, last contact date)<\/li>\n\n\n\n<li>Owner information<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Arrange the fields in a logical layout.<\/li>\n\n\n\n<li>Click <strong>Save<\/strong> and then <strong>Publish<\/strong> to make the form available.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #2: Add the Quick View Form to the Parent Entity Form<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now, place the quick view form on the parent form where you want the summary to appear:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate back to your solution and open the parent entity&#8217;s main form (e.g., Account, Contact).<\/li>\n\n\n\n<li>From the component panel on the left, drag <strong>Quick view<\/strong> onto the form canvas.<\/li>\n\n\n\n<li>In the properties panel that appears:\n<ul class=\"wp-block-list\">\n<li><strong>Label: <\/strong>Enter a display label like \u201cPrimary Contact Details\u201d or \u201cLatest Opportunity\u201d<\/li>\n\n\n\n<li><strong>Lookup field: <\/strong>Select the lookup field that connects the parent record to the related record (e.g., Primary Contact lookup on Account)<\/li>\n\n\n\n<li><strong>Related entity: <\/strong>This auto-populates based on your lookup selection<\/li>\n\n\n\n<li><strong>Quick view form: <\/strong>Select the quick view form you created in Step 1<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Adjust the form layout to position the quick view form near related sub-grids for better visual flow.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #3: Configure a Filtered Sub-Grid Alongside the Quick View<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a sub-grid that complements the quick view form by showing all matching records:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>On the same parent form, drag a <strong>Subgrid<\/strong> component onto the canvas.<\/li>\n\n\n\n<li>In the properties panel:\n<ul class=\"wp-block-list\">\n<li><strong>Label: <\/strong>Enter a descriptive label like \u201cAll Active Contacts\u201d<\/li>\n\n\n\n<li><strong>Table: <\/strong>Select the same related entity used in the quick view form<\/li>\n\n\n\n<li><strong>Default view: <\/strong>Choose a view that applies appropriate filters (refer to Method 1 for creating custom views)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Position the sub-grid below or adjacent to the quick view form.<\/li>\n\n\n\n<li>Enable <strong>Show related records<\/strong> to ensure the sub-grid only displays records related to the current parent record.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #4: Use Business Rules to Show\/Hide Quick View Forms Conditionally<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add intelligence to your form by displaying the quick view form when specific conditions are met:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the form designer, click <strong>Business rules<\/strong> from the command bar (or find it in the left panel).<\/li>\n\n\n\n<li>Click <strong>New business rule<\/strong> to create a new rule.<\/li>\n\n\n\n<li>Give your rule a name like \u201cShow Contact Summary When Primary Contact Exists.\u201d<\/li>\n\n\n\n<li>In the business rule designer:\n<ul class=\"wp-block-list\">\n<li><strong>Condition: <\/strong>Add a condition like &#8220;Primary Contact contains data&#8221;<\/li>\n\n\n\n<li><strong>Action: <\/strong>Under the &#8220;If Yes&#8221; branch, add an action to <strong>Show<\/strong> the quick view form control<\/li>\n\n\n\n<li><strong>Action:<\/strong> Under the &#8220;If No&#8221; branch, add an action to <strong>Hide<\/strong> the quick view form control<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Activate<\/strong> to enable the business rule.<\/li>\n\n\n\n<li>Close the business rule designer and return to the form.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #5: Create Multiple Quick View Forms for Different Scenarios<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can add multiple quick view forms to the same parent form, each displaying data from different related records:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Add a second quick view form component to the form canvas.<\/li>\n\n\n\n<li>Configure it to reference a different lookup field (e.g., \u201cLast Contacted By\u201d or \u201cAccount Manager\u201d).<\/li>\n\n\n\n<li>Create business rules to control visibility based on which lookup fields contain data.<\/li>\n\n\n\n<li>This approach gives users contextual information without cluttering the interface.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #6: Combine Quick View Forms with Tabs and Sections<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Organize your form layout to group related quick view forms and sub-grids:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the form designer, add a new <strong>Tab<\/strong> to the form (e.g., &#8220;Related Information&#8221;).<\/li>\n\n\n\n<li>Within the tab, create <strong>Sections<\/strong> for different types of related data (e.g., &#8220;Contacts,&#8221; &#8220;Opportunities,&#8221; &#8220;Cases&#8221;).<\/li>\n\n\n\n<li>Place the relevant quick view form and filtered sub-grid in each section.<\/li>\n\n\n\n<li>This structure keeps the form organized and helps users find information quickly.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step #7: Test the Quick View and Sub-Grid Integration<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Verify that your configuration works as expected:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>Save<\/strong> and <strong>Publish<\/strong> the form.<\/li>\n\n\n\n<li>Open a parent record (e.g., an Account).<\/li>\n\n\n\n<li>Confirm the quick view form displays data from the related record.<\/li>\n\n\n\n<li>Verify the sub-grid shows the filtered list of all related records.<\/li>\n\n\n\n<li>Test the business rules by changing lookup field values and confirming the quick view form appears or disappears accordingly.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">When to Use Quick View Forms for Filtered Context<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This approach works well for scenarios where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You need to highlight key information from a single related record alongside a complete list<\/li>\n\n\n\n<li>Non-technical administrators must configure the solution without developer involvement<\/li>\n\n\n\n<li>The relationship between the parent and the related entity uses a lookup field that identifies the most important related record<\/li>\n\n\n\n<li>Business rules can adequately control when the quick view form should appear or hide<\/li>\n\n\n\n<li>Users benefit from seeing summary data without opening the full related record<\/li>\n\n\n\n<li>Form performance matters, and you want to minimize client-side script execution<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For scenarios where you need full control over which records appear and how users interact with them, combine quick view forms with the JavaScript filtering approach covered in Method 2.<\/p>\n\n\n\n<section class=\"call-to-action-section\">\n<div class=\"call-to-action-container\">\n<div class=\"call-to-action-body\">\n<div class=\"cta-title\"><\/div>\n<p><\/p>\n<div style=\"text-align:center; color:white;\">\n<strong>Also Read:<\/strong> <a href=\"https:\/\/www.aegissofttech.com\/insights\/top-5-plugins-integrations-for-crm\/\" target=\"_blank\">Top Game-Changing Plugins and Integrations for CRM Platform<\/a><\/div>\n<p><\/p>\n<\/div>\n<\/div>\n<\/section>\n\n\n\n<h2 class=\"wp-block-heading\">Scenario Examples and Use Cases<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding when and how to apply Dynamics 365 CE sub-grid <span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">filtering<em><strong>&nbsp;<\/strong><\/em>becomes<\/span> clearer through real-world scenarios. Check these out!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Filter Child Records Based On Parent Status<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When managing accounts or opportunities, displaying all child records regardless of the parent&#8217;s status creates unnecessary noise. For example, if an account has been marked as inactive, users rarely need to see active opportunities or open cases associated with that account.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Scenario<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Your sales team works with accounts that transition between active, inactive, and on-hold statuses. When an account becomes inactive, the team should see closed opportunities and resolved cases in the sub-grids. And when the account is active, the sub-grids should display open opportunities and active cases.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Solution Using Static Views<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Create two custom views for the Opportunity entity: &#8220;Active Opportunities&#8221; (filtered to Status = Open) and &#8220;Closed Opportunities&#8221; (filtered to Status = Won or Lost).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then use business rules on the Account form to show the appropriate sub-grid based on the account status field. When Status = Active, show the sub-grid configured with &#8220;Active Opportunities.&#8221; When Status = Inactive, show the sub-grid configured with &#8220;Closed Opportunities.&#8221;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Solution Using JavaScript<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Implement a dynamic filter that reads the account status field and applies the appropriate FetchXML to the opportunity sub-grid. Register this function on the form&#8217;s OnLoad event and the status field&#8217;s OnChange event:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function filterOpportunitiesByAccountStatus(executionContext) {\n    var formContext = executionContext.getFormContext();\n    var accountStatus = formContext.getAttribute(\"statecode\").getValue();\n    var oppGrid = formContext.getControl(\"Opportunities\");\n    \n    if (oppGrid &amp;&amp; accountStatus !== null) {\n        var statusFilter = (accountStatus === 0) ? \"0\" : \"1,2\"; \/\/ 0=Active, 1=Won, 2=Lost\n        \n        var fetchXml = &#091;\n            \"&lt;fetch&gt;\",\n            \"  &lt;entity name='opportunity'&gt;\",\n            \"    &lt;attribute name='name' \/&gt;\",\n            \"    &lt;attribute name='estimatedvalue' \/&gt;\",\n            \"    &lt;filter type='and'&gt;\",\n            \"      &lt;condition attribute='parentaccountid' operator='eq' value='\",\n            formContext.data.entity.getId().replace(\/&#091;{}]\/g, \"\"),\n            \"' \/&gt;\",\n            \"      &lt;condition attribute='statecode' operator='in'&gt;\",\n            \"        &lt;value&gt;\", statusFilter, \"&lt;\/value&gt;\",\n            \"      &lt;\/condition&gt;\",\n            \"    &lt;\/filter&gt;\",\n            \"  &lt;\/entity&gt;\",\n            \"&lt;\/fetch&gt;\"\n        ].join(\"\");\n        \n        oppGrid.setFilterXml(fetchXml);\n        oppGrid.refresh();\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This approach ensures the sub-grid automatically updates when users change the account status, providing immediate feedback without requiring a page refresh.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Show Only Related Records Owned by Current User or Team<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Security roles control record-level access, but sub-grids often display all related records a user can view. This creates clutter when multiple team members share access to parent records but need to focus on their own assignments.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Scenario<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Your customer service team shares access to high-priority accounts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each service representative needs to see all cases related to an account in one sub-grid, but their personal cases in a highlighted sub-grid at the top of the form. This helps representatives prioritize their workload without losing visibility into the full case history.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Solution Using Static Views<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Create a custom view called &#8220;My Active Cases&#8221; with two filter conditions: Owner = Current User AND Status = Active. Add two sub-grids to the Account form. Configure the first sub-grid to use &#8220;My Active Cases&#8221; as the default view.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Configure the second sub-grid to use &#8220;All Active Cases&#8221; (filtered to Status = Active without owner restrictions). Label the first sub-grid &#8220;My Cases&#8221; and the second &#8220;Team Cases.&#8221;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Solution Using JavaScript<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Implement a dynamic filter that retrieves the current user&#8217;s ID and applies it to the sub-grid:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function filterCasesByCurrentUser(executionContext) {\n    var formContext = executionContext.getFormContext();\n    var userSettings = Xrm.Utility.getGlobalContext().userSettings;\n    var currentUserId = userSettings.userId.replace(\/&#091;{}]\/g, \"\");\n    \n    var casesGrid = formContext.getControl(\"MyCases\");\n    \n    if (casesGrid) {\n        var fetchXml = &#091;\n            \"&lt;fetch&gt;\",\n            \"  &lt;entity name='incident'&gt;\",\n            \"    &lt;attribute name='title' \/&gt;\",\n            \"    &lt;attribute name='prioritycode' \/&gt;\",\n            \"    &lt;attribute name='createdon' \/&gt;\",\n            \"    &lt;filter type='and'&gt;\",\n            \"      &lt;condition attribute='customerid' operator='eq' value='\",\n            formContext.data.entity.getId().replace(\/&#091;{}]\/g, \"\"),\n            \"' \/&gt;\",\n            \"      &lt;condition attribute='ownerid' operator='eq' value='\",\n            currentUserId,\n            \"' \/&gt;\",\n            \"      &lt;condition attribute='statecode' operator='eq' value='0' \/&gt;\",\n            \"    &lt;\/filter&gt;\",\n            \"  &lt;\/entity&gt;\",\n            \"&lt;\/fetch&gt;\"\n        ].join(\"\");\n        \n        casesGrid.setFilterXml(fetchXml);\n        casesGrid.refresh();\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Make Sub-Grid Filtering Work for Your Organization with Aegis Softtech<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Clean, filtered sub-grids transform cluttered forms into focused workspaces that help users make faster decisions. Whether you choose static views for consistent filtering, JavaScript for dynamic responses, or quick view forms for contextual summaries, the right method to filter sub-grid rows in Dynamics 365 minimizes cognitive load and improves system performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At Aegis Softtech, we help organizations implement robust, maintainable Dynamics 365 CE sub-grid filtering solutions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our <a href=\"https:\/\/www.aegissofttech.com\/hire-ms-crm-developers.html\" target=\"_blank\" rel=\"noreferrer noopener\">Dynamics 365 CRM developers<\/a> write upgrade-safe client scripts and FetchXML filters, audit existing forms to identify UX improvements, and design filtering strategies that scale with your data growth.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your <a href=\"https:\/\/www.aegissofttech.com\/dynamics-365\" target=\"_blank\" rel=\"noreferrer noopener\">Dynamics 365<\/a> forms feel overwhelming or your sub-grids slow down user productivity, we can help.<\/p>\n\n\n    \t<section class=\"call-to-action-section\">\n    \t\t<div class=\"call-to-action-container\">\n    \t\t\t<div class=\"call-to-action-body\">\n    \t\t\t\t<div class=\"cta-title\"><\/div>\n    \t\t\t\t<p><\/p>\n<div style='text-align:center; color:white;'>\n<a href=\"https:\/\/www.aegissofttech.com\/contact-us.html\" target=\"_blank\">Contact us<\/a> today to discuss how we can optimize your CRM experience.<\/div>\n<p><\/p>\n    \t\t\t<\/div>\n    \t\t\t    \t\t<\/div>\n    \t<\/section>\n    \n\n\n\n<h2 class=\"wp-block-heading\">FAQs<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Can I filter sub-grid data based on the parent record\u2019s field values?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. For example, if you\u2019re viewing an Account form, you can filter the Opportunities sub-grid to show only records with the same \u201cIndustry\u201d as the Account. You\u2019d access the parent field using formContext.getAttribute(&#8220;industrycode&#8221;).getValue() inside your filter logic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. What\u2019s the difference between filtering sub-grid data and configuring a related view?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A related view filter is static; it applies every time that view is used anywhere. A sub-grid filter, on the other hand, can be context-specific, changing dynamically based on the parent record or user interaction. This makes it more flexible for tailored user experiences.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Are there any performance concerns with dynamic filtering on large datasets?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, each dynamic filter triggers a query to Dataverse. For large datasets or complex filters, this can slow down form load times. Use lightweight filters and limit sub-grid columns to improve performance.<\/p>\n","protected":false},"excerpt":{"rendered":" ","protected":false},"author":11,"featured_media":19357,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1173,21],"tags":[1626],"class_list":["post-9809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dynamics-365-ce","category-dynamics-crm","tag-filter-sub-grid-rows-in-dynamics-365"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts\/9809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/comments?post=9809"}],"version-history":[{"count":10,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts\/9809\/revisions"}],"predecessor-version":[{"id":19483,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/posts\/9809\/revisions\/19483"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/media\/19357"}],"wp:attachment":[{"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/media?parent=9809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/categories?post=9809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aegissofttech.com\/insights\/wp-json\/wp\/v2\/tags?post=9809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}