2013-10-03 28 views
0

我有一個搜索表單,其中包含像複選框列表(多選),文本框 控件中的數據我需要在SharePoint列表中搜索值並在網格視圖中顯示列表記錄。使用StringBuilder創建動態搜索查詢

請教我如何編寫動態搜索查詢。 例如:如果在一個文本框中沒有選擇任何值,我不需要將它包含在查詢中。

回答

0

使用StringBuilder動態地形成查詢。

if (!(String.IsNullOrEmpty(implanter))) 
{ 
     query[querycount] = "<In><FieldRef Name='Implanter' /><Values>" + implanter + "</Value></In>"; 
          querycount++; 
} 
1

您可以運行SPMetal使用LINQ

  1. http://msdn.microsoft.com/en-us/library/ee538255%28v=office.14%29.aspx
  2. http://zimmergren.net/technical/sp-2010-getting-started-with-linq-to-sharepoint-in-sharepoint-2010

生成靜態對象查詢您的列表或只使用一個老而又有效的CAML查詢

SPQuery oQuery = new SPQuery(); 
oQuery.Query = "<Where><Eq><FieldRef Name='YourField'/>" + 
    "<Value Type='Text'>Insert value to search here</Value></Eq></Where>"; 
SPListItemCollection collListItems = oList.GetItems(oQuery); 

在一個簡單的LINQ查詢

var results = MySPList.Items.Cast<SPListItem>() 
       .Where(SPItem => SPItem["YourField"] == "Your query"); 

但是,運行spmetal是,如果你打算經常使用LINQ查詢,去,因爲使用上splists直LINQ查詢可能會導致對嚴重的性能問題的方式。

+0

使用Lambda表達式爲上述問題提出解決方案 – user2831167