Pregunta

Estoy usando SharePoint 2013. Desarrollé un webpart visual en Visual Studio 2013. He agregado este código en el código, detrás de mi 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; }

}

Desplego el webpart.Agrego la página web a mi página de inicio.Hago clic en Editar WebPart y ver a la derecha sobre todas las categorías y propiedades.Pero no veo mi categoría personalizada "Configuración de mensaje".También extraño a mi propiedad personalizada "UpdateInterval" en las categorías existentes.

¿Extraño algo en mi código?Me gustaría tener solo una propiedad personalizada hacer algo manejable por los administradores del sitio.

ingrese la descripción de la imagen aquí

Hice una exportación de mi webpart en SharePoint.Abrí el archivo .WebPart en Notepad ++.Y veo esto a continuación.¡No veo la propiedad 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>

¿Fue útil?

Solución

¿Está seguro de que usted ha creado el proyecto como un proyecto 2013? Parece que estás usando la plantilla de 2010 para las partes web. En 2013, un Visual WebPart es una clase que hereda desde WebPart. En 2010, hay dos clases, una que hereda de la parte web, y una herida de UserControl. En 2010, hay solo unas pocas líneas de código en la clase WebPart que cargan el UserControl. Entonces, en 2010, ahí es donde van las propiedades (en la clase WebPart, no la clase de USERCONTROL.)

Entonces, su código se ve bien para una parte web basada en 2013.

Editar: El código de su propiedad se ve bien para una parte web basada en 2013, pero el hecho de que hereda de un USERControl significa que es una parte web basada en 2010.

creación de propiedades en las partes web 2013

Creación de las propiedades en las partes web de 2010

Otros consejos

olvidó el nombre (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; }

fuente

Intenta agregar WebDisplayName("your field name")

y asegúrese de que el código final se vea así

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

Además, puede verificar los pasos de detalles en Crear propiedades de WebPart personalizadas para Visual WebPart en SharePoint 2010-2013 Artículo

Espero que te ayude

Licenciado bajo: CC-BY-SA con atribución
scroll top