1

カスタム エディター パーツを使用して Web パーツを作成しました。ここで、エディター パーツが開いている場合の Web パーツの動作を変更したいと考えています。

ユーザーが「OK」、「適用」、または「キャンセル」をクリックしたときにも起動することを除いて、CreateEditorParts() メソッドにフラグを設定することで、ほとんど動作させることができます。ページはエディター パーツを開かずにレンダリングされますが、Web パーツは引き続き CreateEditorParts メソッドを実行します。

これを示す System.Web.UI.WebControls.WebParts.WebPart クラスのプロパティを見つけることができませんでした。

..方法はありますか?

4

3 に答える 3

2

以下を使用して、ページが編集モードかどうかを確認できます。

 WebPartManager wpm = WebPartManager.GetCurrentWebPartManager(Page);
 if (wpm.DisplayMode == WebPartManager.EditDisplayMode)
 {
      //Page is in edit mode
 }

私はこれをテストしていませんが、CreateEditorParts() でこのチェックを行うことができ、コードは editorpart が開いているときにのみ実行されます。

于 2009-10-30T08:50:47.810 に答える
0

他の人に役立つ可能性がある場合:

EditorPart が表示されていることを WebPart が認識できるポイントがいくつかあります。それらの 1 つがシナリオに適合する可能性があります。

Web パーツで:

EditorPart で:

  • EditorPart.SyncChanges : "[...] SyncChanges メソッドが呼び出されるもう 1 つのケースは、WebPart コントロールが編集モードに入るときです。"
  • EditorPart ライフサイクル メソッドの 1 つ (例: OnInit /OnLoad)。EditorPart には、 EditorPart.WebPartToEditプロパティによるWebPartへの参照があります。
于 2011-10-24T00:26:05.767 に答える
0

私はそれをテストしていませんが、おそらく EditorPart 自体の可視性をチェックすることはオプションかもしれません。

于 2009-10-30T08:27:29.160 に答える