Domanda

Sto usando SharePoint 2013. Ho sviluppato un WebPart Visual in Visual Studio 2013. Ho aggiunto questo codice nel codice dietro il mio 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; }

}
.

Distribuisco il webpart.Aggiungo il webpart alla mia homepage.Ho clicco su Modifica WebPart e vedi direttamente sopra tutte le categorie e le proprietà.Ma non vedo la mia categoria personalizzata "Configurazione dei messaggi".Mi manca anche la mia proprietà personalizzata "updateinterval" nelle categorie esistenti.

Mi manca qualcosa nel mio codice?Mi piacerebbe avere solo una proprietà personalizzata di creare qualcosa di gestibile dagli amministratori del sito.

Inserisci Descrizione dell'immagine qui

Ho fatto un'esportazione del mio WebPart in SharePoint.Ho aperto il file .webpart in Notepad ++.E lo vedo qui sotto.Non vedo la proprietà personalizzata!

<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>
.

È stato utile?

Soluzione

Sei sicuro di aver creato il progetto come progetto 2013? Sembra che tu stia usando il modello del 2010 per le parti web. Nel 2013, Visual WebPart è una classe che eredita da WebPart. Nel 2010, ci sono due classi, una che eredita dalla web part e uno che eredita da usercontrol. Nel 2010, ci sono solo alcune righe di codice nella classe di WebPart che caricano l'usercontrol. Quindi, nel 2010, è qui che le proprietà vanno (nella classe WebPart, non nella classe USERControl.)

Allora, il tuo codice sembra soddisfacente per una parte web basata sulla 2013.

Modifica: il tuo codice di proprietà sembra bene per una web part basata sulla 2013, ma il fatto che eredita da un usercontrol significa che è una web part Web basata sul 2010.

Creazione di proprietà nel 2013 Web Parts

Creazione di proporzioni nelle parti Web 2010

Altri suggerimenti

Hai dimenticato il nome (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; }
.

sorgente

prova ad aggiungere WebDisplayName("your field name")

E assicurati che il codice finale assomigli a questo

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

Inoltre, è possibile controllare i passaggi di dettaglio in Crea proprietà WebPart personalizzate per Visual WebPart in SharePoint 2010-2013 Articolo

Spero che ti aiuti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top