0

我有一个搜索表单,其中包含复选框列表(多选)等控件中的数据,文本框我需要在 SharePoint 列表中搜索值并在网格视图中显示列表记录。

请建议我如何编写动态的搜索查询。例如:如果在一个文本框中没有选择任何值。我不需要将其包含在查询中。

4

2 回答 2

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");

但是,如果您计划频繁使用 linq 查询,则可以运行 spmetal,因为在 splist 上使用直接 linq 查询可能会导致严重的性能问题。

于 2013-10-03T11:53:48.550 回答
0

使用 StringBuilder 动态形成查询。

if (!(String.IsNullOrEmpty(implanter)))
{
      query[querycount] = "<In><FieldRef Name='Implanter' /><Values>" + implanter + "</Value></In>";
                            querycount++;
}
于 2014-09-15T11:40:15.713 回答