<div class="col-lg-12 control-section">
<ejs-querybuilder id="myQuerybuilder" width="100%" allowValidation="true">
<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="TitleOfCourtesy" label="Title Of Courtesy" type="boolean" values="ViewBag.values"></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-column field="City" label="City" type="string"></e-querybuilder-column>
</e-querybuilder-columns>
</ejs-querybuilder>
</div>
<ejs-button id="getrule" cssClass='e-primary' content="Get rule"></ejs-button>
<script>
document.getElementById('getrule').onclick = function () {
var qb = getMyQueryBuilderInstance();
ruleObj = qb.getValidRules(qb.rule);
if (ruleObj.rules.length) { // rules comes undefined when there's only one condition in the component and I get "Cannot read property 'length' of undefined"
$("#myQueryBuilderError").remove();
return true;
}
else {
$("#myQueryBuilderError").remove();
$("#myQuerybuilder").parent().append($("<div id='myQueryBuilderError' class='invalid-feedback d-block'>Please add at least one condition</div>"))
return false;
}
}
function getMyQueryBuilderInstance() {
return ej.base.getInstance(document.getElementById("myQuerybuilder"), ej.querybuilder.QueryBuilder);
}
</script> |