Dela via


Listruteformateringsdelar

Listruta del är en enkel formateringsdel som används för att representera uppräkning objekttyp från en capabilities.json fil. Det finns två rullgardinslister – ItemDropdown och AutoDropdown.

Deras skillnad är att för AutoDropdown-sektorn måste du deklarera listan med uppräkningsobjekt under lämpligt objekt i capabilities.json fil och för ItemDropdown-sektorn i formateringsinställningsklassen.

Exempel: Rullgardinsmenyimplementering

I det här exemplet visar vi hur du skapar en listruta med hjälp av formateringsmodellverktyg. Följande flikar visar exempel på ItemDropdown- och AutoDropdown- delar.

Skärmbild av en ItemDropdown.

Kapabilitetsobjekt

Infoga följande JSON-fragment i capabilities.json-filen.

{
  // ... same level as dataRoles and dataViewMappings
  "objects": {
    "labels": {
      "properties": {
        "option": {
          "type": {
            "enumeration": []
          }
        },
      }
    }
  }
}

Formateringsmodell-klass

Infoga följande kodfragment i inställningsfilen.

import powerbi from "powerbi-visuals-api";
import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";

const positionOptions : powerbi.IEnumMember[] = [
    {value : "top", displayName : "Top"}, 
    {value : "bottom", displayName : "Bottom"},
    {value : "left", displayName : "Left"}, 
    {value : "right", displayName : "Right"}
];

class LabelsCardSetting extends formattingSettings.SimpleCard {
    name: string = "labels"; // same as capabilities object name
    displayName: string = "Labels";

    public option: formattingSettings.ItemDropdown = new formattingSettings.ItemDropdown({
        name: "option", // same as capabilities property name
        displayName: "Option",
        items: positionOptions,
        value: positionOptions[0] 
    });

    public slices: formattingSettings.Slice[] = [ this.option ];
}

export class VisualSettings extends formattingSettings.Model {
    public labels: LabelsCardSetting = new LabelsCardSetting();
    public cards: formattingSettings.SimpleCard[] = [this.labels];
}