У меня есть пользовательский поиск, в котором пользователь вводит серийный номер, а документы из базы данных Notes возвращаются в соответствии с этим S / N в элементе управления повторением.Им разрешается выполнять другой поиск на основе другого S / N, однако, если пользователь вводит неверный серийный номер после получения результатов из хорошего S / N, код ошибки onClick выходит из строя, а повторный элемент управления отображает документы из хорошего S / N.Н.Есть ли способ стереть записи в Repeat Control, когда пользователь начинает новый поиск.
На XPage есть две кнопки.Первый называется «Поиск», и при щелчке происходит некоторый анализ (в этом случае происходит ошибка из-за плохого S / N), и активируется код поиска Java-бина для возврата результатов.Затем кнопка «Поиск» скрывается, и отображается вторая кнопка с именем «Новый поиск», которая при щелчке стирает данные, введенные пользователем для первого поиска, и позволяет им ввести новый S / N.
Iискал этот форум и другие и не нашел ответов.Я установил свойства управления повторением RemoveRepeat в значение true, а также repeatControls в значение false.
Код для кнопки поиска
importPackage(com.ourComp)
dBar.warn("pssrl1 = " + getComponent("pssrl1").getValue().toUpperCase());
if(getComponent("pssrl1").getValue().toUpperCase()!=""){
try{
var serialNbr = getComponent("pssrl1").getValue().toUpperCase();
varr mhpItem = getDataBean.getModelNbrData(serialNbr.toUpperCase(),"americas", sessionScope.SNtable);
sessionScope.serialNbr = serialNbr;
//it errors out below on bad S/N
var sg= utilBean.getLeftDataInfo(searchMHP);
var newSearchMHP = utilBean.getRightDataInfo(searchMHP);
var funct = utilBean.getLeftDataInfo(newSearchMHP);
var len = sg.length-1
var size = sg.slice(0,len)
var gen = sg.substr(len,1);
//based on funct > lookup productFamily in another DB
var otherDBname = configBean.getValue("otherDbPath")
var otherDB:NotesDatabase = session.getDatabase(session.getServerName(), otherDBname);
var vwWOther:NotesView = otherDB.getView("ProdFamLU");
//now that we have connection to other get document based funct
var docFunct:NotesDocument = vwOther.getDocumentByKey(funct);
var productFamily=docFunct.getItemValueString("Family");
returnMapSearch = searchLiteratureBean.processSearch5(mhpItem,funct,size,gen,sessionScope.LanguageP,productFamily);
} catch(e){
dBar.error("Error in Search button: " + e.toString());
sessionScope.showResults = false
println("ccDataEntry---username " + session.getEffectiveUserName() + "--> Error in Search button: " + e.toString());
}
}
println("++++++++++++++++++++++++++++");
Код для кнопки нового поиска
sessionScope.serialNbr="";
sessionScope.mhpItem="";
getComponent("pssrl1").setValue("");
Как очистить существующие результаты повторного контроля?
Код повторения
<xp:panel id="panelSearchResults1" styleClass="row">
<xp:this.rendered><![CDATA[#{javascript:sessionScope.showResults != false}]]></xp:this.rendered>
<xp:repeat id="repeat1"
rows="${searchLiteratureBean.maxResultsPerPage}"
value="#{javascript:if(showWidget==true) {return searchLiteratureBean.getSearchResults();}}"
var="col" indexVar="ind">
<tr>
<td>
<xp:image
url="#{col.iconURL}" id="image2" alt="#{col.mediaType}"
style="padding-top:3px;">
</xp:image>
<xe:tooltip
id="tooltip1" for="image1" label="#{col.mediaType}">
</xe:tooltip>
</td>
<td>
<xp:link escape="true" text="#{col.subject}" id="link2" value="#{col.url}">
<xp:this.target><![CDATA[#{javascript:return (col.isHomeDoc()? "" : "_blank");}]]></xp:this.target>
</xp:link>
</td>
<td>
<xp:text escape="true" id="computedField6" value="#{col.productFamily}"> </xp:text>
</td>
<td>
<xp:text escape="true" id="computedField2" value="#{col.language}"> </xp:text>
</td>
<td>
<xp:text escape="true" id="computedField3" value="#{col.lastModified}">
<xp:this.converter>
<xp:convertDateTime type="date"> </xp:convertDateTime>
</xp:this.converter>
</xp:text>
</td>
</tr>
</xp:repeat>
</xp:panel>