2

リクエスト

会社の部門にメンバーを追加したいのですが、私たちの会社にはより多くのオフィスがあり、各オフィスには独自の部門があるため、最初にそれを整理してから、各メンバーをその部門に割り当てて、アクセス権限のみを持つようにする必要があります。自分の部門。

Umbraco コンテンツとしての部門の概要:

Root Node
-Office 1
-- Department1.1
-- Department1.2
-Office 2
-- Department 2.1
-Office 3
-- Department 3.1
-- Department 3.2
-- Department 3.3

ここで、ユーザーを追加する場合、1 つのプロパティでオフィスを選択し、別のプロパティで部門を選択する必要があります。

可能な解決策

あちこちチェックすると、Umbraco のUltimatePicker型を使用して Office プロパティを作成し、親ノードにリンクされたカスタム データ型を作成してから、MemberType 内のプロパティを作成できることがわかりました。これにより、「ルート ノード」の下にオフィスが表示され、メンバーがそのうちの 1 つにリンクされます。

今、私が見た部門のプロパティを作成するには、カスタムの手動でコーディングされたプロパティを使用し、ユーザーコントロールを追加し、それを使用してオフィスの子供を動的に表示する方法がある可能性があります(私はまだ試していません、私は理論化しています) .

しかし、2 番目のプロパティが最初のプロパティに依存するのではないかと心配しています。ユーザー コントロールにumbraco.editorControls.userControlGrapper.IUsercontrolDataEditorを実装するカスタム プロパティを作成しようとすると、2 つではなく 1 つの値しか保存できません。彼ら。これは A プロパティであり、それらの束ではないはずなので、これは理にかなっています。

私の質問

さて、これら 2 つのカスタム プロパティを保持し、オフィスを変更した場合に部門も更新されるようにするための最良の方法は何ですか?

現時点で最高のクレイジーなアイデア

今のところ、各プロパティに 1 つずつ、2 つのユーザー コントロールを作成し、オフィスが更新されるたびに手動で部門をクリーンアップすることしか想像できませんが、これが可能かどうかはわかりません (本当に動的に部門を取得できますか? dep. property FROM office property usercontrol?) をクリーンアップし、コードを簡素化するためにそれらをまとめたいと思います。

4

1 に答える 1

1

関係が重要であり、ユーザーがオフィスに属していない部署を誤って選択するのを防ぐ必要がある場合は、2 つのドロップダウン メニューを含む単一のユーザー コントロールを作成できます。最初のメニューにはオフィスが表示され、2 番目のメニューはオフィスの選択が行われた後にのみ (できれば ajax 呼び出しによって) 読み込まれます。

オフィスと部門を取得するためのコードは、umbraco API を使用すると比較的簡単です。

次に、ユーザーコントロールは、それぞれのIDをxmlまたはカンマ区切りのリストに保存できます。

または、ユーザーが部門を選択できるようにし、オフィスは部門の選択によって暗示されるようにすることもできます。uComponent のマルチノードピッカーを使用して、ノードの選択を Department doc タイプのみにフィルタリングできます。オーバーヘッドは、Department から Office を作成する必要がある UI コードにあります。

これを回避するには、単に部門のオフィスの ID を格納する label プロパティを使用できます。Office ID は、OnSave イベント ハンドラーを使用して保存できます。

于 2013-01-24T11:25:06.870 に答える