0

クライアント オブジェクト モデル(Silverlight を使用しています) を使用して、Sharepointの既定のビューのフィールドを読み込みたいと考えています。ここに私が見つけたいくつかの関連するものがあります(ここのmsdnで):list

  • クラスには[タイプ]のListプロパティがありますDefaultViewUrlstring
  • クラスListにはメソッドがありますGetView(Guid)
  • クラスには[タイプ]のListプロパティがありますViewsViewCollection
  • クラスViewCollectionにはメソッドがありますGetById(Guid)
  • クラスViewCollectionにはメソッドがありますGetByTitle(string)
  • クラスには[タイプ]のViewプロパティがありますDefaultViewbool

それが私が見つけることができたすべてです。ご覧のとおり、DefaultView を直接取得する方法はありません (DefaultViewIdプロパティ onListまたはGetByUrl(string)メソッド onがありませんViewCollection)。

唯一の解決策は、コレクションを反復処理し、それぞれのプロパティList.Viewsをチェックすることだと私には思えます。これは一種の...うーん、非効率的です...DefaultViewView

私は何か見落としてますか?まっすぐなソリオンを見た人はいますか?アイデアをありがとう。

4

2 に答える 2

1

LINQ ステートメントを使用して LoadQuery を試す

例えば:

private IEnumerable<View> viewQuery = null;
public void LoadDefaultView()
{
    using (ClientContext ctx = ClientContext.Current)
    {
        list = ctx.Web.Lists.GetByTitle("YourList");

        viewQuery = ctx.LoadQuery(list.Views
                   .Include(v => v.Title) // include more lamda statements here to populate View Properties
                   .Where(v => v.DefaultView == true));

        ctx.ExecuteQueryAsync(LoadDefaultViewSuccess, LoadDefaultViewFailure);
    }
}
private void LoadDefaultViewSuccess(object sender, ClientRequestSucceededEventArgs args)
{
    // should only be one View in views
    View defaultView = viewQuery.FirstOrDefault();

    // use default.Title here
}
private void LoadDefaultViewFailure(object sender, ClientRequestFailedEventArgs args)
{
    // handle failure here
}

MSDN SharePoint 2010 Silverlight COM の記事はこちら http://msdn.microsoft.com/en-us/library/ee538971.aspx

于 2012-04-12T15:13:26.357 に答える
0

どうSPList.DefaultViewですか?SPList DefaultView メンバーは SPView オブジェクトです (bool ではありません)。

于 2011-08-08T15:11:26.477 に答える