我有一个搜索表单,其中包含复选框列表(多选)等控件中的数据,文本框我需要在 SharePoint 列表中搜索值并在网格视图中显示列表记录。
请建议我如何编写动态的搜索查询。例如:如果在一个文本框中没有选择任何值。我不需要将其包含在查询中。
我有一个搜索表单,其中包含复选框列表(多选)等控件中的数据,文本框我需要在 SharePoint 列表中搜索值并在网格视图中显示列表记录。
请建议我如何编写动态的搜索查询。例如:如果在一个文本框中没有选择任何值。我不需要将其包含在查询中。
您可以运行 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,因为在 splist 上使用直接 linq 查询可能会导致严重的性能问题。
使用 StringBuilder 动态形成查询。
if (!(String.IsNullOrEmpty(implanter)))
{
query[querycount] = "<In><FieldRef Name='Implanter' /><Values>" + implanter + "</Value></In>";
querycount++;
}