MCPInstall

syncfusion-aspnetcore-query-builder

Complete guide to implementing the Syncfusion QueryBuilder component in ASP.NET Core applications. Use this when working with visual query/filter builders, rule-based filtering UI, SQL/JSON/MongoDB query generation, drag-and-drop rule reordering, or import/export of filter conditions using Syncfusion EJ2 TagHelpers.

Installs
106
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-query-builder
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads syncfusion-aspnetcore-query-builder automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Implementing QueryBuilder in ASP.NET Core

The Syncfusion QueryBuilder is a UI component for creating and editing filter conditions visually. Users can define rules and groups, combine them with AND/OR connectors, and export them as JSON, SQL, or MongoDB queries — all using ASP.NET Core TagHelper syntax.

Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • NuGet package installation and TagHelper setup
  • CDN stylesheet and script references
  • Basic QueryBuilder with columns
  • Render with initial Rule (JSON)
  • EmployeeView model class example

Column Configuration

📄 Read: references/columns.md

  • Auto-generating columns from DataSource
  • Labels, field mapping, data types
  • Operators table (all supported types)
  • Number step and date/number format
  • Validation (isRequired, min, max)
  • Column-level custom input templates

Data Binding

📄 Read: references/data-binding.md

  • Local data binding (JSON array, DataManager)
  • Remote data (OData, ODataV4, WebAPI, UrlAdaptor)
  • Using getPredicate to filter data
  • Grid integration via ruleChange event

Import & Export

📄 Read: references/import-export.md

  • Import from JSON (initial Rule / setRules)
  • Import from SQL (Inline, Parameter, Named Parameter)
  • Import from MongoDB (setMongoQuery)
  • Export to JSON (getRules)
  • Export to SQL variants and MongoDB

Filtering & Rule Management

📄 Read: references/filtering-and-rules.md

  • ShowButtons configuration (ruleDelete, groupInsert, groupDelete, clone, lock)
  • addRules / deleteRules / addGroups / deleteGroups methods
  • cloneGroup / cloneRule methods
  • lockGroup / lockRule methods
  • EnableSeparateConnector between rules
  • EnableNotCondition for NOT groups

Templates & Appearance

📄 Read: references/templates-and-appearance.md

  • Header template customization
  • Display mode (Horizontal / Vertical)
  • Summary view (collapsed read-only display)
  • Model binding (fieldModel, operatorModel, valueModel)
  • CSS classes for styling customization

Configuration & How-To

📄 Read: references/configuration-and-how-to.md

  • Drag and drop (AllowDragAndDrop, events)
  • MaxGroupCount to restrict nested groups
  • SortDirection for column field ordering
  • EnablePersistence (state saved in localStorage)
  • EnableRtl for right-to-left languages
  • ReadOnly mode, Width/Height, CssClass
  • AutoSelectField, AutoSelectOperator, MatchCase

Localization

📄 Read: references/localization.md

  • Setting the Locale property
  • Full locale key reference table
  • Example: Arabic / RTL localization

API Reference

📄 Read: references/api.md

  • Complete properties with types and defaults
  • All events with descriptions
  • QueryBuilderColumn sub-properties
  • QueryBuilderShowButtons sub-properties
  • TagHelper attribute naming conventions

Quick Start Example

@* _ViewImports.cshtml must have: @addTagHelper *, Syncfusion.EJ2 *@

<ejs-querybuilder id="querybuilder" width="70%">
    <e-querybuilder-columns>
        <e-querybuilder-column field="EmployeeID" label="Employee ID" type="number"></e-querybuilder-column>
        <e-querybuilder-column field="FirstName" label="First Name" type="string"></e-querybuilder-column>
        <e-querybuilder-column field="Title" label="Title" type="string"></e-querybuilder-column>
        <e-querybuilder-column field="HireDate" label="Hire Date" type="date" format="dd/MM/yyyy"></e-querybuilder-column>
        <e-querybuilder-column field="Country" label="Country" type="string"></e-querybuilder-column>
    </e-querybuilder-columns>
</ejs-querybuilder>

Common Patterns

Render with Initial Rule

@using Syncfusion.EJ2.QueryBuilder
@{
    QueryBuilderRule rule = new QueryBuilderRule()
    {
        Condition = "and",
        Rules = new List<QueryBuilderRule>()
        {
            new QueryBuilderRule { Label = "First Name", Field = "FirstName", Type = "string", Operator = "startswith", Value = "Nancy" },
            new QueryBuilderRule { Label = "Country", Field = "Country", Type = "string", Operator = "equal", Value = "USA" }
        }
    };
    var dataSource = EmployeeView.GetAllRecords();
}
<ejs-querybuilder id="querybuilder" width="70%" rule="rule" dataSource="dataSource">
    <e-querybuilder-columns>
        <e-querybuilder-column field="EmployeeID" label="Employee ID" type="number"></e-querybuilder-column>
        <e-querybuilder-column field="FirstName" label="First Name" type="string"></e-querybuilder-column>
        <e-querybuilder-column field="Country" label="Country" type="string"></e-querybuilder-column>
    </e-querybuilder-columns>
</ejs-querybuilder>

Export Rules to SQL

var queryBuilder = ej.base.getInstance(document.getElementById("querybuilder"), ejs.querybuilder.QueryBuilder);

// Get JSON rules
var jsonRules = queryBuilder.getRules();

// Get Inline SQL
var sql = queryBuilder.getSqlFromRules(jsonRules);

// Get Parameterized SQL
var paramSql = queryBuilder.getParameterizedSql(jsonRules);

Grid Integration with QueryBuilder

// In ruleChange event handler:
function ruleChanged(args) {
    var qryBldrObj = ej.base.getInstance(document.getElementById("querybuilder"), ejs.querybuilder.QueryBuilder);
    var gridObj = ej.base.getInstance(document.getElementById("Grid"), ejs.grids.Grid);
    gridObj.query = qryBldrObj.getDataManagerQuery(qryBldrObj.getRules());
    gridObj.refresh();
}

Drag and Drop Enabled

<ejs-querybuilder id="querybuilder" allowDragAndDrop="true" width="70%">
    <e-querybuilder-columns>
        <e-querybuilder-column field="FirstName" label="First Name" type="string"></e-querybuilder-column>
        <e-querybuilder-column field="Country" label="Country" type="string"></e-querybuilder-column>
    </e-querybuilder-columns>
</ejs-querybuilder>

Key Properties Quick Reference

PropertyTagHelper AttributePurpose
Columnse-querybuilder-columnsDefine filterable fields
Rulerule="rule"Initial rule — C# QueryBuilderRule object
DataSourcedataSourceBind local/remote data
AllowDragAndDropallowDragAndDropEnable rule reordering
AllowValidationallowValidationValidate rule inputs
EnableSeparateConnectorenableSeparateConnectorPer-rule AND/OR connectors
EnableNotConditionenableNotConditionNOT group operator
MaxGroupCountmaxGroupCountLimit nested group depth
SummaryViewsummaryViewShow collapsed rule summary
DisplayModedisplayModeHorizontal or Vertical layout
EnablePersistenceenablePersistenceSave state to localStorage
EnableRtlenableRtlRight-to-left layout
SortDirectionsortDirectionSort column field list
ReadonlyreadonlyDisable all interactions
Width / Heightwidth / heightComponent dimensions

Common Use Cases

  • Data grid filter UI → QueryBuilder + Grid integration via ruleChange
  • Save/restore conditions → getRules + setRules with localStorage or backend
  • SQL WHERE clause builder → getSqlFromRules / getParameterizedSql
  • MongoDB filter → getMongoQuery / setMongoQuery
  • Read-only filter display → summaryView="true" + readonly="true"
  • Mobile-friendly layout → displayMode="Vertical" + maxGroupCount="2"
  • Localized UI → locale property + L10n translation object

Security & Trust Boundary

External Dependency: CDN-Based JavaScript Execution

The Syncfusion QueryBuilder requires runtime execution of external JavaScript from the official CDN endpoint (https://cdn.syncfusion.com/ej2/*/dist/ej2.min.js). This is a required trusted dependency with the following security considerations:

Risk Mitigation Strategies

  1. Use HTTPS Only

    • Always reference CDN resources via HTTPS to prevent man-in-the-middle attacks
    • Verify your layout template uses https:// scheme
  2. Subresource Integrity (SRI)

    • Include SRI hash attributes to validate script integrity:
    <script src="https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2.min.js" 
            integrity="sha384-[HASH]" 
            crossorigin="anonymous"></script>
    
  3. Content Security Policy (CSP)

    • Add Syncfusion CDN to your CSP whitelist:
    script-src 'self' https://cdn.syncfusion.com;
    style-src 'self' https://cdn.syncfusion.com;
    
  4. Vendor Lock & Trust Assessment

    • Trusted Vendor: Syncfusion is an established commercial component vendor with industry adoption
    • No Open-Source Alternatives: QueryBuilder functionality is specialized; evaluate internal development costs vs. vendor dependency
    • Consider Bundling: For enhanced control, bundle Syncfusion scripts locally instead of using CDN (download and host on your own domain)
  5. Version Pinning

    • Always pin the specific version instead of using wildcard versions:
    ❌ https://cdn.syncfusion.com/ej2/latest/dist/ej2.min.js
    ✅ https://cdn.syncfusion.com/ej2/23.1.43/dist/ej2.min.js
    
  6. Update Management

    • Regularly update Syncfusion NuGet packages and verify corresponding CDN versions match
    • Subscribe to Syncfusion security announcements
    • Test updates in staging environment before production deployment

Acceptable Risk Assessment

  • Severity: Medium (requires trust boundary evaluation at deployment)
  • Mitigation: Implement SRI + CSP + version pinning
  • Approval: Obtain security team sign-off for use in compliant applications

Start here: Read references/getting-started.md to set up your first QueryBuilder.

FAQ

What does the syncfusion-aspnetcore-query-builder skill do?

Complete guide to implementing the Syncfusion QueryBuilder component in ASP.NET Core applications. Use this when working with visual query/filter builders, rule-based filtering UI, SQL/JSON/MongoDB query generation, drag-and-drop rule reordering, or import/export of filter conditions using Syncfusion EJ2 TagHelpers.

How do I install syncfusion-aspnetcore-query-builder?

Run npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-query-builder in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-aspnetcore-query-builder/ (personal) or .claude/skills/syncfusion-aspnetcore-query-builder/ (project).

Which AI agents can use syncfusion-aspnetcore-query-builder?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is syncfusion-aspnetcore-query-builder safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains syncfusion-aspnetcore-query-builder?

It is published by syncfusion in syncfusion/aspnetcore-ui-components-skills. It has 106 recorded installs.

More from syncfusion/aspnetcore-ui-components-skills

View all →

syncfusion-aspnetcore-charts

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design112 installs

syncfusion-aspnetcore-common

syncfusion/aspnetcore-ui-components-skills

CONFIGURATION GUIDE — Assist with Syncfusion ASP.NET Core EJ2 components setup, localization, and version compatibility. Use when: installing Syncfusion packages, configuring globalization/localization, selecting compatible versions.

Frontend & Design111 installs

syncfusion-aspnetcore-license

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design111 installs

syncfusion-aspnetcore-grid

syncfusion/aspnetcore-ui-components-skills

Implements Syncfusion ASP.NET Core Grid component for feature-rich data tables and grids. Use this when working with data display, sorting, filtering, grouping, aggregates, editing, or exporting. This skill covers grid configuration, CRUD operations, virtual scrolling or infinite scrolling, hierarchy grids, state persistence, and advanced data management features for data-intensive applications.

Frontend & Design110 installs

syncfusion-aspnetcore-security

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Security108 installs

syncfusion-aspnetcore-gantt-chart

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design108 installs

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs