3

指定された形式で (任意のリストおよびリストの種類から) ランダムなリスト アイテムをレンダリングする Web パーツがあります。Web パーツに表示されている項目を ListItem 詳細ビューにリンクさせたいと考えています。ただし、リスト自体には、どのビューがリストの既定の DETAIL ビューであるかを示すプロパティが表示されません (つまり、ブログ リストの詳細は Post.aspx です)。これはリスト定義から来ていますか?その情報をプログラムで取得するにはどうすればよいですか? リストの種類に基づいてリスト情報をハードコーディングしないようにしています。

4

1 に答える 1

6

をご覧くださいSPList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url

これがあなたが探しているものだと思います。表示するリスト項目を認識できるように、クエリ文字列に SPListItem.ID を追加する必要があります。

using (SPWeb myWeb = GetMyWeb()) // GetMyWeb gets a reference to a SPWeb object
{
    SPList myList = GetMyList(myWeb); // GetMyList gets a reference to a SPList object
    SPListItem myItem = GetMyListItem(myList); // GetMyListItem gets a reference to a SPListItem object
    string url = String.Format("{0}/{1}?ID={2}",
        myWeb.Url,
        myList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url, 
        myItem.ID);
}

また&Source=/url/to/current/page、クエリ文字列に追加することをお勧めします。これにより、ユーザーが [編集] または [表示] フォームの [キャンセル/閉じる] ボタンをクリックしたときに、元のページにリダイレクトされます。

于 2008-12-03T18:54:44.847 に答える