删除 1 行后刷新以重复控件无法正常工作
Refresh to repeat control not working normal after deleting 1 row
我在文档中有一个名为 "selectedTime" 的字段,该字段存储由 user.Adding 添加的所选时间正在工作 perfect.This 是后端。
现在我将解释这个从前面选择日期的问题 end.I 已经给了一个按钮添加以添加 times.The 日期时间的自定义控件被添加到重复控件点击添加 button.Even 如果我签入文档,它会显示所选列表 times.Even 这很好用。
现在如果我想从重复控件中随机删除选定的时间,它会从文档中删除该特定记录,但是在页面上重复的最后一条记录消失了,
我假设这是重复控件的部分刷新问题,我什至尝试过,但没有 result.Full 刷新中断页面。
java 删除按钮的脚本代码
`var doc:NotesDocument = database.getDocumentByUNID(context.getUrlParameter("refId"))
var selectedTimes:java.util.Vector = doc.getItemValue("selectedTimes");
if(selectedTimes != null){
var sdtString = getComponent("inputHidden1").getValue();
if(selectedTimes.contains(sdtString))
selectedTimes.remove(sdtString);
doc.replaceItemValue("selectedTimes",selectedTimes);
doc.save();
};
var url:XSPUrl = context.getUrl();
view.postScript("window.refresh('"+url+"')");`
我知道很难理解我想解释的内容,但如有任何建议,我们将不胜感激。
即使有人有任何想法删除文档的字段值,在我的例子中字段名称是 "selectedTimes" 并且值在重复控件中添加了多次,请分享。
编辑 1:
//Repeat Control
var doc:NotesDocument = database.getDocumentByUNID(context.getUrlParameter("refId"))
var selectedTimes:java.util.Vector = doc.getItemValue("selectedTimes");
return selectedTimes;
另一种尝试可能是 link 使用 viewScope 而不是文档重复:
1) 在事件beforeLoadPage/afterLoadPage中:从文档中获取值,并将其放入viewScope变量中:
// beforeLoadPage event:
// ... get the doc
viewScope.selectedTimes = doc.getItemValue("selectedTimes");
2) 在repeat控件中,使用viewScope:
<xp:repeat value="#{viewScope.selectedTimes}"...
3) 更新完成后,同时更新 viewScope 和文档:
//...update the View Scope variable and get the document:
doc.replaceItemValue("selectedTimes", viewScope.selectedTimes);
如果将文档添加为数据源,这可能是一个提示:
您是否将文档作为数据源包含在 XPage 中?在这种情况下,尝试获取并更新 NotesXspDocument 而不是 DB 中的文档:
XPage:
<xp:this.data>
<xp:dominoDocument var="xspDocument"
action="editDocument"
documentId="#{param.unid}">
</xp:dominoDocument>
</xp:this.data>
SSJS 代码:直接使用 XspDocument
var selectedTimes:java.util.Vector = xspDocument.getItemValue("selectedTimes");
...
xspDocument.replaceItemValue("selectedTimes", selectedTimes);
如果值不会从文档中删除,这可能是一个提示:
在 sdtString 中,您得到一个字符串值:
var sdtString = getComponent("inputHidden1").getValue();
如果您将时间值存储为 NotesDateTimes,您将在 Vector 中获得这种类型的值,并且 remove 方法将找不到 String,并且不会删除任何内容。
// In a Vector<NotesDateTime> the String cannot be found:
selectedTimes.remove(sdtString);
确保删除与 Vector 中相同类型的值
我在文档中有一个名为 "selectedTime" 的字段,该字段存储由 user.Adding 添加的所选时间正在工作 perfect.This 是后端。
现在我将解释这个从前面选择日期的问题 end.I 已经给了一个按钮添加以添加 times.The 日期时间的自定义控件被添加到重复控件点击添加 button.Even 如果我签入文档,它会显示所选列表 times.Even 这很好用。
现在如果我想从重复控件中随机删除选定的时间,它会从文档中删除该特定记录,但是在页面上重复的最后一条记录消失了,
我假设这是重复控件的部分刷新问题,我什至尝试过,但没有 result.Full 刷新中断页面。
java 删除按钮的脚本代码
`var doc:NotesDocument = database.getDocumentByUNID(context.getUrlParameter("refId"))
var selectedTimes:java.util.Vector = doc.getItemValue("selectedTimes");
if(selectedTimes != null){
var sdtString = getComponent("inputHidden1").getValue();
if(selectedTimes.contains(sdtString))
selectedTimes.remove(sdtString);
doc.replaceItemValue("selectedTimes",selectedTimes);
doc.save();
};
var url:XSPUrl = context.getUrl();
view.postScript("window.refresh('"+url+"')");`
我知道很难理解我想解释的内容,但如有任何建议,我们将不胜感激。
即使有人有任何想法删除文档的字段值,在我的例子中字段名称是 "selectedTimes" 并且值在重复控件中添加了多次,请分享。
编辑 1:
//Repeat Control
var doc:NotesDocument = database.getDocumentByUNID(context.getUrlParameter("refId"))
var selectedTimes:java.util.Vector = doc.getItemValue("selectedTimes");
return selectedTimes;
另一种尝试可能是 link 使用 viewScope 而不是文档重复:
1) 在事件beforeLoadPage/afterLoadPage中:从文档中获取值,并将其放入viewScope变量中:
// beforeLoadPage event:
// ... get the doc
viewScope.selectedTimes = doc.getItemValue("selectedTimes");
2) 在repeat控件中,使用viewScope:
<xp:repeat value="#{viewScope.selectedTimes}"...
3) 更新完成后,同时更新 viewScope 和文档:
//...update the View Scope variable and get the document:
doc.replaceItemValue("selectedTimes", viewScope.selectedTimes);
如果将文档添加为数据源,这可能是一个提示:
您是否将文档作为数据源包含在 XPage 中?在这种情况下,尝试获取并更新 NotesXspDocument 而不是 DB 中的文档:
XPage:
<xp:this.data>
<xp:dominoDocument var="xspDocument"
action="editDocument"
documentId="#{param.unid}">
</xp:dominoDocument>
</xp:this.data>
SSJS 代码:直接使用 XspDocument
var selectedTimes:java.util.Vector = xspDocument.getItemValue("selectedTimes");
...
xspDocument.replaceItemValue("selectedTimes", selectedTimes);
如果值不会从文档中删除,这可能是一个提示:
在 sdtString 中,您得到一个字符串值:
var sdtString = getComponent("inputHidden1").getValue();
如果您将时间值存储为 NotesDateTimes,您将在 Vector 中获得这种类型的值,并且 remove 方法将找不到 String,并且不会删除任何内容。
// In a Vector<NotesDateTime> the String cannot be found:
selectedTimes.remove(sdtString);
确保删除与 Vector 中相同类型的值