コードのWebPartzoneプロパティの変更
-
16-10-2019 - |
質問
問題は次のとおりです。SPDの使用は、ユーザーがWPゾーンからWebパートを閉じる /最小化できるようにプロパティを簡単に変更できます。
webpartzoneプロパティhttp://img34.imageshack.us/img34/3389/webpartzoneedit.png
さて、コードでどのようにそれを行うことができますか?サイトに30個以上のASPX WebPartページがあります。誰もWebパートのプロパティを変更できないようにしたいと思います(閉じる、削除など)
私が見つけた唯一のことは、このリンクです: spwebpartzoneTools.
sdkで詳細を読む: WSS 3.0 SDK, 、2番目の重要な段落で次のように書かれています。
ディスプレイにWebパーツを追加することはできますが、リスト項目(Dispform.aspx、editform.aspx、およびnewform.aspx)の新しいフォームを追加できますが、Windows SharePointサービスでは推奨またはサポートされていません。 Webパーツをリストに追加するビューページ(allitems.aspx)がサポートされています。
それが私が修正したい間違いです:)。私はそのルールを破りました。私の問題はSPDで修正できますが、それがコードで修正できるかどうかはわかりません。
間違いは、素晴らしい40テンプレートの1つから「インスピレーション」されました。 BudgetIngTrackingMultipleProjects.wsp. 。そこにプロジェクトリストに載っているDispform.aspxで、Microsoftはより多くのWebパートを追加してマスターディテールフォームを作成します。
解決
このような問題を解決しました。SPDでdispform.aspxを開き、Webパーツゾーンプロパティを変更した場合、Souceコード(ASPX)でこの行を見ることができます。
<WebPartPages:WebPartZone runat="server" FrameType="None" ID="Main" Title="loc:Main" allowlayoutchange="false" allowpersonalization="false" allowcustomization="false">
そこで、各リストにアクセスし、そのdispform.aspxのURLを取得し、通常のテキストファイルのように開くシンプルなコンソールアプリを作成します。だから私はAPIやSMTHを使用していません、ただ spweb.getfile(string) - spfileを取得します spweb.getFileasString(url) ASPXコンテンツを文字列として取得します。次に、属性を注入しています(Allowlayoutchange / 許可された人物化 / 許容財産)上記のラインでは、文字列検索と交換方法を使用して。
次に、spfile.savebinary()を使用してコンテンツをASPXファイルに戻します。それは、次回dispform.aspxがコントリブを要求されるときです。ユーザーはそこからWebパートで何かをすることはできません。これが、Webパーツゾーンのプロパティを変更する私の方法です。他のソリューションを見るのをとても楽しみにしています。
他のヒント
Webパーツのプロビジョニング後にこれらのプロパティを設定できるはずです(つまり、Chrisが言って、Webパーツのマニフェストでそれを定義していない場合)。 リーク)各ページで、Allowclose、Allowhide、Allowminimizeなどのプロパティを設定します。
HTH ANDERS RASK
これをWebPartzoneコントロール(コードまたはASPX)に設定することもできます。たとえば、LockLayoutプロパティを使用してください。
<WebPartPages:WebPartZone LockLayout="true" runat="server"...>...</...>
/ww
コードでそれをする必要がありますか?あなたの要件が単にユーザーがあなたのWebパーツでこれらの変更を行うのを止めることである場合、これは通常、この動作を指定するプロパティをWebパーツにプロビジョニングすることによって対処されます。
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="xxxxx.SharePoint.Common.WebParts.SiteDirectoryWebPartWrapper,
xxxxxx.SharePoint.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="AllowZoneChange" type="bool">False</property>
<property name="AllowHide" type="bool">False</property>
<property name="AllowMinimize" type="bool">False</property>
<property name="AllowClose" type="bool">False</property>
<property name="AllowEdit" type="bool">True</property>
<property name="AllowConnect" type="bool">False</property>
<property name="ExportMode" type="exportmode">All</property>
<property name="Hidden" type="bool">False</property>
<property name="TitleUrl" type="string" />
<property name="Description" type="string">Displays a list of sites
for the current area (e.g. 'teams') in a treeview. </property>
<property name="Title" type="string">xxxxx Site Directory
Web Part</property>
</properties>
</data>
</webPart>
</webParts>