Forum Discussion

cboneill0099's avatar
cboneill0099
Helper I
6 years ago
Solved

Custom Slicer Loses Value When Toggling Visibility

I have a custom slicer I wrote that filters dates.  It's pretty basic, you just give it a date field and it lets you filter the report down to a single date.  The issue I'm having with it is if I select a date, the report filters down correctly.  If I then hide the visual it loses the selection and the filter is gone.

 

I'm having trouble finding documentation on what's happening behind the scenes when it's hidden.  Can anyone give me some insights into what's going on and if there is some type of special handling for this secenario?

 

Thanks

4 Replies

    • cboneill0099's avatar
      cboneill0099
      Helper I

      I attempted to use the filtering API and it solved half of my problem.  Now, when I hide the visual the filter does not go away, but when I make the visual visable again, the filter gets lost.  Is there something I should be doing to persist the filter behind the scenes and reload it when making the visual visable again?

       

      Here is my code in the update method:

              let filterTarget: IFilterColumnTarget = {
                  table: categories.source.queryName.substr(0, categories.source.queryName.indexOf('.')),
                  column: categories.source.displayName
              };
              
              const basicFilter: IBasicFilter = {
                  $schema: "http://powerbi.com/product/schema#basic",
                  // target: {
                  //     table:"Date",
                  //     column:"CalendarYear"
                  // },
                  target: filterTarget,
                  operator: "In",
                  values: [dateSelectionValue], //[2019],
                  filterType: FilterType.Basic
              }
      
              this.visualHost.applyJsonFilter(basicFilter, "general", "filter", FilterAction.merge);

       

      This is what I added to the capabilities file:

      "general": {
                  "displayName": "General",
                  "displayNameKey": "formattingGeneral",
                  "properties": {
                      "filter": {
                          "type": {
                              "filter": true
                          }
                      },
                      "selfFilter": {
                          "type": {
                              "filter": {
                                  "selfFilter": true
                              }
                          }
                      }
                  }
              }

       

       

      Thank you

      • cboneill0099's avatar
        cboneill0099
        Helper I

        There was an error in my code causing the filter to get lost.  The above solution worked for me.

         

        Thank you.