2

状況

Sharepoint 2010では、リスト内のアイテムをクリックできます。

ここに画像の説明を入力してください

次に、読み取り/編集ビューがそのページに表示されます。

ここに画像の説明を入力してください

私の目標

別のページにWebパーツがあり、このリストと他のいくつかのリストからのアイテムをいくつか表示しています。それぞれに読み取りまたは編集リンクを追加したいと思います。

どうやってやるの?

EditListItem('ItemId', 'ListId', ...)編集divウィンドウを開くような関数を探しています。

私は何を試しましたか

上記の「テスト項目」でSharepointによって生成されたタグは次のようになります。

<a onfocus="OnLink(this)" 
   href="http://{mysharepointsite}/_layouts/listform.aspx
         ?PageType=4
         &amp;ListId={D0FDB54F-1DDF-4C5E-865B-ABDE55C1125}
         &amp;ID=1
         &amp;ContentTypeID=0x010800ED5176D13CCEFC4AA8D62A79985DE892"
   onclick="EditLink2(this,49);return false;" target="_self">Test Item</a>

そこで、Sharepoint JSファイルを少し掘り下げて、コンテキスト()からの呼び出しがコンテキスト番号であり、動的であるように見えるEditLink2呼び出しを見つけました。_EditLink2ShowPopup49

私はコンテキストを偽造しようとしましたが、何十億もの変数があり、それを安定して機能させることはできないと思います。

4

2 に答える 2

4

ダイアログを開く必要があるそのページで、モーダルダイアログを表示するための単純なJS関数を記述します。次に例を示します。

function openMyItemDialog( itemId ) {
    var options = {
        url: "http://{mysharepointsite}/_layouts/listform.aspx?PageType=4&ListId={D0FDB54F-1DDF-4C5E-865B-ABDE55C1125}&ID=" + itemId + "&ContentTypeID=0x010800ED5176D13CCEFC4AA8D62A79985DE892&IsDlg=1",
        width: 500,
        height: 500,
        title: "Item view/edit"
    };
    SP.UI.ModalDialog.showModalDialog( options );
}

&IsDlg=1URLのパラメータに注意してください

次に、アイテムを表示するhrefリンクを変更します。

例えば:

<a href="#" onclick="openMyItemDialog(35)">Test item</a>

あなたのアイテムのに交換35してくださいID

于 2012-04-11T10:52:26.177 に答える
0

これは古い質問ですが、OPがやろうとしていたことを達成する別の方法があります。

XSLT ViewWebPartには、$ViewCounterという名前のグローバルパラメーターがあります。これは、_EditLink2関数に必要なコンテキスト番号です。

したがって、表示フォームへのリンクを追加してダイアログで開くには、次の<a>ようなタグでアイテムをラップします。

<a href="{$HttpVDir}/_layouts/listform.aspx?PageType=4&amp;ListId={$List}&amp;ID={$thisNode/@ID}" onclick="EditLink2(this,{$ViewCounter});return false;">your item</a>

変数$HttpVDir、$ List、$ thisNode / @ ID、および$ ViewCounterに注意してください(値をハードコーディングする必要はありません)。

于 2014-02-17T17:37:30.873 に答える