我有一些数据视图,以及一个包含每个文档创建日期的列。 我想制作一个包含3个输入字段的搜索功能: Name,StartDate,EndDate。 搜索结果应该是所有具有相同名称且在2个日期内的文件。
任何人都可以帮助我吗?
由于
答案 0 :(得分:5)
使用DominoView数据源的search
属性。它对视图中的所有文档进行全文搜索。创建一个类似
[Name]="Meier" AND [_creationDate]>=12-01-2013 AND [_creationDate]<=30-08-2014
您的数据源代码如下所示:
<xp:this.data>
<xp:dominoView
var="view1"
viewName="YourView">
<xp:this.search><![CDATA[#{javascript:
var search = "";
var formatter = new java.text.SimpleDateFormat("dd-MM-yyyy");
if (viewScope.Name) {
search += ' AND [Name]="' + viewScope.Name + '*"';
}
if (viewScope.StartDate) {
search += ' AND [_creationDate]>=' + formatter.format(viewScope.StartDate);
}
if (viewScope.EndDate) {
search += ' AND [_creationDate]<=' + formatter.format(viewScope.EndDate);
}
return search.substring(5);}]]></xp:this.search>
</xp:dominoView>
</xp:this.data>
此代码假定有可编辑的搜索字段,其值绑定到viewScope.Name
,viewScope.StartDate
和viewScope.EndDate
,例如
<xp:inputText
id="inputText1"
value="#{viewScope.Name}">
</xp:inputText>
<xp:inputText
id="inputText2"
value="#{viewScope.StartDate}">
<xp:this.converter>
<xp:convertDateTime
type="date"
dateStyle="short">
</xp:convertDateTime>
</xp:this.converter>
<xp:dateTimeHelper></xp:dateTimeHelper>
</xp:inputText>