Question

J'utilise SharePoint 2013.J'ai développé un webpart visuel dans Visual Studio 2013.J'ai ajouté ce code dans le code-behind de mon webpart :

public partial class VisualWebPart1UserControl : UserControl
{

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected override void CreateChildControls()
    {
        base.CreateChildControls();
    }

    [WebPartStorage(Storage.Shared)]
    [Personalizable(PersonalizationScope.Shared)]
    [FriendlyNameAttribute("Update interval")]
    [Description("Insert feed update interval")]
    [WebBrowsable(true)]
    [Category("Message Configuration")]
    public int UpdateInterval { get; set; }

}

Je déploie le webpart.J'ajoute le composant WebPart à ma page d'accueil.Je clique sur modifier le webpart et vois juste au-dessus de toutes les catégories et propriétés.Mais je ne vois pas ma catégorie personnalisée « Configuration des messages ».Il me manque également ma propriété personnalisée "UpdateInterval" dans les catégories existantes.

Est-ce que j'ai raté quelque chose dans mon code ?J'aimerais que seule une propriété personnalisée rende quelque chose de gérable par les administrateurs du site.

enter image description here

J'ai fait un export de mon webpart dans SharePoint.J'ai ouvert le fichier .webpart dans notepad++.Et je vois cela ci-dessous.Je ne vois pas la propriété personnalisée !

<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <type name="VisualWebPartProject1.VisualWebPart1.VisualWebPart1, VisualWebPartProject1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c139f77c8f6182b2" />
      <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="ExportMode" type="exportmode">All</property>
        <property name="HelpUrl" type="string" />
        <property name="Hidden" type="bool">False</property>
        <property name="Description" type="string">My Visual Web Part</property>
        <property name="CatalogIconImageUrl" type="string" />
        <property name="Title" type="string">VisualWebPartProject1 - VisualWebPart1</property>
        <property name="AllowHide" type="bool">True</property>
        <property name="AllowMinimize" type="bool">True</property>
        <property name="AllowZoneChange" type="bool">True</property>
        <property name="TitleUrl" type="string" />
        <property name="ChromeType" type="chrometype">Default</property>
        <property name="AllowConnect" type="bool">True</property>
        <property name="Width" type="unit" />
        <property name="Height" type="unit" />
        <property name="HelpMode" type="helpmode">Navigate</property>
        <property name="AllowEdit" type="bool">True</property>
        <property name="TitleIconImageUrl" type="string" />
        <property name="Direction" type="direction">NotSet</property>
        <property name="AllowClose" type="bool">True</property>
        <property name="ChromeState" type="chromestate">Normal</property>
      </properties>
    </data>
  </webPart>
</webParts>
Était-ce utile?

La solution

Êtes-vous sûr de créer le projet en tant que projet 2013? On dirait que vous utilisez le modèle 2010 pour les pièces Web. En 2013, un WebPart Visual est une classe qui hérite de WebPart. En 2010, il y a deux classes, dont une qui hérite d'une partie Web et celle qui hérite d'UserControl. En 2010, il n'ya que quelques lignes de code dans la classe WebPart qui chargent l'UserControl. Donc, en 2010, c'est là que les propriétés vont (dans la classe WebPart, pas la classe USERCONTROL.)

Donc, votre code a l'air bien pour une partie Web basée sur 2013.

Edit: Votre code de propriété a l'air bien pour une partie Web basée sur 2013, mais le fait qu'il hérite d'un UserControl signifie qu'il s'agit d'une partie Web basée sur 2010.

Création de propriétés en 2013 Pièces Web

Création de la forme des pièces Web de 2010

Autres conseils

Vous avez oublié le nom (WebDisplayName):

[WebBrowsable(true),
 WebDisplayName("Text Input"), //<----------------Needs a name
 WebDescription("This Accepts text Input"),
 Personalizable(PersonalizationScope.Shared),
 Category("My Category")]
 public string TextProperty1 { get; set; }

Source

Essayez d'ajouter WebDisplayName("your field name")

et assurez-vous que le code final ressemble à ceci

[WebBrowsable(true),
WebDisplayName("Project ID"),
WebDescription("Enter Project Number"),
Personalizable(PersonalizationScope.Shared),
Category("Project Settings")]
public string ProjectID { get; set; }

vous pouvez également vérifier les étapes détaillées dans créer des propriétés de composant WebPart personnalisées pour le composant WebPart visuel dans SharePoint 2010-2013 article

J'espère que ça t'aide

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top