私のカスタムWebPartプロパティが見つかりません、私のコードで何を見逃しましたか?
-
29-09-2020 - |
質問
SharePoint 2013を使用しています。私はVisual Studio 2013のVisual WebPartを開発しました。私はこのコードを私の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; }
}
.
WebPartを展開します。私のホームページにWebPartを追加します。WebPartの編集をクリックし、すべてのカテゴリとプロパティのすぐ上に表示します。しかし、私のカスタムカテゴリ「メッセージ構成」は表示されません。既存のカテゴリのマイカスタムプロパティ "updateInterval"もなくて
私は私のコードに何かが恋しいですか?カスタムプロパティだけが、サイト管理者によって管理可能なものを作りたいです。
私はSharePointで私のWebPartをエクスポートしました。メモ帳++の.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年のプロジェクトとしてプロジェクトを確実に作成しましたか? Webパーツに2010のテンプレートを使用しているようです。 2013年には、Visual WebPartはWebPartから継承するクラスです。 2010年には、Webパーツから継承するものと、UserControlから継承するものが2つあります。 2010年に、UserControlをロードするWebPartクラスには数行数行があります。したがって、2010年には、プロパティがGo(WebPartクラスで、UserControlクラスではなく)
です。だから、あなたのコードは2013年に基づくWebパーツではうまくいきます。
編集:あなたのプロパティコードは2013年ベースのWebパーツではうまくいっていますが、それがUserControlから継承するという事実は、それが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プロパティの作成2010-2013