私のカスタムWebPartプロパティが見つかりません、私のコードで何を見逃しましたか?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/112021

質問

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パーツであることを意味します。

2013年のプロパティの作成Webパーツ

2010年のWebパーツでのプロパティの作成a>

他のヒント

名前を忘れた(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; }
.

source

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

それがあなたを助けることを願っています

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top