1

VS2010 には、アプリケーション ページを含む SharePoint 2010 プロジェクトがあります。この単純なページには、注文に関するヘッダー情報と、製品詳細のSharePoint:ListViewがあります。したがって、その ListView を OrderId でフィルタリングしたいだけです。

SPWeb myWeb = SPControl.GetContextWeb(Context);
SPList lstOrderDetail = myWeb.Lists["OrderDetail"];
SPView vwOrderDetail = lstProductosPedidos.Views["ShortedForCustomer"];
lvOrderDetail.ListId = lstOrderDetail.ID.ToString("B").ToUpperInvariant();
lvOrderDetail.ViewId = vwOrderDetail.ID.ToString("B").ToUpperInvariant();
lvOrderDetail.DataBind();

このコードは、「OrderDetail」リスト内のすべてのアイテムを含むリストを表示します。

SPQuery を使用しようとしましたが、SPListItemCollection (クエリの結果) を SharePoint:ListView に関連付ける方法がわかりません。

SPQuery qryOrderDetail = new SPQuery(vwOrderDetail);
qryOrderDetail.Query = string.Format(@"
  <Where>
    <Eq>
      <FieldRef Name='OrderId' LookupID='True'/>
      <Value Type='Number'>{0}</Value>
    </Eq>
  </Where>", iOrderID);
SPListItemCollection lstOrderDetailFiltered = lstProductosPedidos.GetItems(qryOrderDetail);

SPQuery の結果を使用して SharePoint:ListView をフィルター処理するにはどうすればよいですか? 不適切なコンポーネントを使用していますか?

前もって感謝します...

4

2 に答える 2

0

いいですね!

リスト ビューのqueryパラメーターを介してクエリ文字列を設定できます。したがって、上記のコードを考えると、次のものが必要になります。

SPView vwOrderDetail = lstProductosPedidos.Views["ShortedForCustomer"];
vwOrderDetail.Query = string.Format(@"
  <Where>
    <Eq>
      <FieldRef Name='OrderId' LookupID='True'/>
      <Value Type='Number'>{0}</Value>
    </Eq>
  </Where>", iOrderID);
vwOrderDetail.Update();

ここで見つけることができる例: Using SharePoint's SPView Class and CAML as a Query Language and MSDN here: SPView.Query.

于 2011-10-06T09:19:10.503 に答える
0

このコードは私のために実行されています。

SPSite oSite = new SPSite([Site URL]);// [Site URL] change it to your sharepoint site URL
SPWeb oWeb = oSite.OpenWeb();
SPList oList = oWeb.Lists["shared documents"];  
SPViewCollection oViewCollection = oList.Views;

            string strViewName = "MyCustomView";

            System.Collections.Specialized.StringCollection viewFields =
            new System.Collections.Specialized.StringCollection();

            viewFields.Add("Name");
            viewFields.Add("Type");

            string query = "<Where><Eq><FieldRef Name=\"Name\"/>" +
                "<Value Type=\"Text\">mysample</Value></Eq></Where>";// here you can filter your items using the selected
                                                                         item in the dropdownlist
            oViewCollection.Add(strViewName, viewFields, query, 100, true, false);

 oWeb.Update();
于 2012-02-24T11:13:04.380 に答える