我正在使用 SharePoint 2013。我在 Visual Studio 2013 中开发了一个视觉 Web 部件。我已将此代码添加到我的 web 部件的代码隐藏中:

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; }

}

我部署了 Web 部件。我将 Web 部件添加到我的主页。我单击编辑 Web 部件,然后在所有类别和属性的正上方查看。但我没有看到我的自定义类别“消息配置”。我还想念现有类别中的自定义属性“UpdateInterval”。

我的代码中是否遗漏了某些内容?我只想有一个自定义属性,以便站点管理员可以管理某些内容。

enter image description here

我在 SharePoint 中导出了我的 Web 部件。我在记事本++中打开了.webpart文件。我在下面看到了这一点。我没有看到自定义属性!

<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>
有帮助吗?

解决方案

您是否确定您将项目创建为2013项目?它看起来你正在使用2010年的Web部件模板。 2013年,Visual WebPart是从WebPart继承的类。在2010年,有两个类,其中一个从Web部件继承,一个继承自用户组件的一个。 2010年,在加载UserControl的WebPart类中只有几行代码。因此,在2010年,这就是属性的位置(在WebPart类中,而不是UserControl类。)

所以,您的代码对于2013基础的Web部件看起来很好。

编辑:您的财产代码对于基于2013的Web部分看起来很好,但它从UserControl继承的事实意味着它是基于2010的Web部件。

2013年创建属性

在2010年创建适当的web部件

其他提示

你忘记名字了(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; }

来源

尝试添加WebDisplayName("your field name")

并确保最终代码看起来像这样

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

此外,您还可以检查在SharePoint 2010-2013中的Visual WebPart创建自定义WebPart属性

希望它有助于你

许可以下: CC-BY-SA归因
scroll top