我有一个搜索表单,其中包含像checkboxlist(Multi Select),文本框这样的控件中的数据 我需要在SharePoint列表中搜索值,并在网格视图中显示列表记录。
请建议我如何编写动态的搜索查询。 例如:如果在一个文本框中没有选择任何值,我不需要在查询中包含它。
答案 0 :(得分:1)
您可以运行SPMetal来生成静态对象,以使用LINQ
查询列表或者只使用旧的但有效的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");
但是,如果您打算经常使用linq查询,则运行spmetal是一种方法,因为在splists上使用直接linq查询会导致严重的性能问题。
答案 1 :(得分:0)
使用StringBuilder动态形成查询。
if (!(String.IsNullOrEmpty(implanter)))
{
query[querycount] = "<In><FieldRef Name='Implanter' /><Values>" + implanter + "</Value></In>";
querycount++;
}