Need to implement dynamic filter based on drop down value selection
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-04-2023 10:03 PM
Hi All,
I have a requirement is about dynamic filter I'm facing a challenge while implementing this requirement can anyone suggest me to correct my code. I have created a custom widget it contains one drop down filed that is "Entity" and inside drop down values are fetching from custom table "x_nooy_gbs_o2i_entity". entity drop down filed having only two values 1)Nokia 2)fALU based on Entity selection I need to make dynamic filter In Server Script I'm calling "Data table widget(Cloned), I have implemented that with both values the filter is working fine but `by changing the entity value that time it is not working correctly. When I open first time If I choose Nokia as entity then it is showing correct filter but If I change it to fALU then it is not showing the widget here If I reload the page and then after If I choose fALU then for falu value also the filter is showing correctly. Can anyone help me out to achieve this requirement
HTML:
<div class="row">
<div class="col-md-12">
<span>
<h3 class="heading">
<p><b>Region</b></p>
</h3> </span>
</div>
<div class="clearfix">
</div>
<div class="col-md-4">
<label for="Entity">Entity:</label>
<select id="Entity" ng-model="c.myValue"
ng-options="opt for opt in c.data.choices"
class="form-control" ng-change="c.passoptions()">
<option value="">-- None --</option>
</select>
</div>
</div>
<br>
<!-- <div ng-if="c.showWidget">
<sp-widget ng-if="c.data.tableWidget" widget="c.data.tableWidget"></sp-widget>
</div> -->
<!--<div ng-hide="data.hideWidget"> -->
<div>
<sp-widget widget="data.tableWidget"></sp-widget>
</div>
Client Script:
api.controller = function(spUtil) {
/* widget controller */
var c = this;
c.passoptions = function() {
if (c.myValue != null) {
c.data.filterValue = c.myValue;
c.data.action = "filterChange";
c.server.update();
}
};
};
Server Script:
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
var arr = [];
var gr = new GlideRecord('x_nooy_gbs_o2i_entity');
gr.addEncodedQuery('entity_nameISNOTEMPTY');
gr.query();
while (gr.next()) {
var en = gr.getValue('entity_name');
arr.push(en);
}
data.choices = arr;
data.page = $sp.getParameter('id');
if (input && input.action == 'filterChange') {
var filterValue = input.filterValue;
var updateOptions = {};
updateOptions.table = 'x_nooy_gbs_o2i_region';
if (filterValue == 'fALU') {
updateOptions.filter = 'entity_code.entity_name=' + filterValue;
}
if (filterValue == 'Nokia') {
updateOptions.filter = 'entity_code.entity_name=' + filterValue;
}
updateOptions.fields = 'region_code,entity_code,region,active,sys_created_on,sys_created_by,sys_updated_on,sys_updated_by';
updateOptions.show_breadcrumbs = true;
updateOptions.show_new = true;
data.tableWidget = $sp.getWidget("o2i_region_data_table", updateOptions);
}
})();
I'm showing widget with Nokia and fALU filter after reloaded the page for each time but when I change to other entity option the filter is not working in onchange
Kindly refer the above attachment for better understanding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-05-2023 09:50 PM
Hi @srinivas48 ,
Have a look this post https://www.servicenow.com/community/hrsd-forum/how-to-get-a-dynamic-filter-be-visible-in-drop-down-...
If I could help you with your Query then, please hit the Thumb Icon and mark as Correct !!
Thank you