Pergunta

Eu estou usando o SharePoint 2013.Eu desenvolvi um visual webpart no visual studio 2013.Eu adicionei este código no code-behind da minha 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; }

}

Eu implantar a webpart.Adicionar a peça web para a minha página inicial.Eu clicar em editar web part e ver logo acima, todas as categorias e propriedades.Mas eu não vejo meu categoria personalizada "Message Configuration".Eu sinto falta também da minha propriedade personalizada "UpdateInterval" em categorias existentes.

Posso perder alguma coisa no meu código?Eu gostaria de ter apenas uma propriedade personalizada fazer algo gerenciável pelos administradores do site.

enter image description here

Eu fiz uma exportação de meu web part no SharePoint.Eu abri a .webpart arquivo no notepad++.E eu vejo isso abaixo.Eu não vejo a propriedade personalizada!

<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>
Foi útil?

Solução

Tem certeza que você criou o projeto como um 2013 projeto?Parece que você está usando o 2010 modelo de web parts.Em 2013, um visual webpart é uma classe que herda da web part.Em 2010, existem duas classes, uma que herda parte de web, e aquele que herda de usercontrol.Em 2010, há apenas algumas linhas de código na classe de webpart que carregar o usercontrol.Por isso, em 2010, que é de onde as propriedades go (na classe de webpart, não a classe usercontrol.)

Assim, o código parece bem para um 2013 de web part.

editar:o código de propriedade parece bem para um 2013 com base na web parte, mas o fato de que ele herda de um usercontrol significa que ele é um 2010 com base web part.

Criação de propriedades em 2013, de peças web

A criação de properies em 2010, web parts

Outras dicas

Você esqueceu o nome do (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; }

Origem

Tente adicionar WebDisplayName("your field name")

e certifique-se de que o código final parece com isso

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

além disso, você pode verificar os detalhes de passos criar personalizado propriedades da web part para o visual web part no SharePoint 2010-2013 artigo

Espero que ele ajude você

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top