Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpages 更改视图中的多个数据_Xpages_Lotus Notes - Fatal编程技术网

Xpages 更改视图中的多个数据

Xpages 更改视图中的多个数据,xpages,lotus-notes,Xpages,Lotus Notes,我需要使用Xpages的帮助。如果有这样的问题,或者有一个例子,你能告诉我在哪里找到它吗。 我有一个主页,其中包含多行和多列,如下所示 [Checkbox][Column1][Column2][Column3][Column 4][Column 5] [Checkbox][Data1][Data2][Data3][Data4][Data5] [Checkbox][Data1][Data2][Data3][Data4][Data5] [Checkbox][Data1][Data2][Data3][

我需要使用Xpages的帮助。如果有这样的问题,或者有一个例子,你能告诉我在哪里找到它吗。 我有一个主页,其中包含多行和多列,如下所示

[Checkbox][Column1][Column2][Column3][Column 4][Column 5]
[Checkbox][Data1][Data2][Data3][Data4][Data5]
[Checkbox][Data1][Data2][Data3][Data4][Data5]
[Checkbox][Data1][Data2][Data3][Data4][Data5]
[Checkbox][Data1][Data2][Data3][Data4][Data5]
[Checkbox][Data1][Data2][Data3][Data4][Data5]
现在数据5是一个默认值,未定义,唯一可以设置的值是“Do”或“Do not”。是否有方法检查几行,以便使用组合框和保存按钮将数据5中的值更改为Do或Do,而不进入数据的详细视图

例如,我有30行数据5设置为未定义,我希望其中10行设置为执行。我只需在复选框中选中它们,在组合框中选择“执行”,然后按“保存”。这样我就不必逐个编辑每行数据。

根据您的需要调整XSnippet



该示例包含一个组合框,您可以在其中选择“做”或“不做”,以及一个按钮,用于将此值设置为所有选定文档。

我不确定是否了解您的全部需求,但这里有一种方法

在“勾选”复选框时,使用服务器端的“onclick”事件设置包含noteid的sessionScope,并包括要更新文档的任何值。将刷新id设置为该复选框

对于用户勾选的每个复选框,将向sessionScope添加一个新的noteid。 当用户准备使用save按钮保存更改时,在sessionScope中循环UNID,并在后台更新文档并清除sessionScope

使用这种方法,您还可以提供一个“下一页”,显示范围内的所有文档,并允许用户确认保存


您可能还想添加一个keepalive,这样就不会丢弃用户范围。最好的方法是将客户端代码和服务器端代码结合起来。在这种情况下,我会这样做:

  • 将StyleClass添加到复选框中。为此,请单击复选框,转到“所有属性”并在列表中查找StyleClass。例如,让我们将此类名设置为:
    myCheckboxClass
    。使用此类名,您将能够轻松检索客户端上选中的所有复选框

  • 在包含与行相关的文档的unid的复选框中添加自定义属性。若要执行此操作,请单击复选框,再次转到“所有属性”并查找attr。添加一个名为例如
    unid
    的新attr,并将其值计算为行的unid。此属性将允许您从客户端了解该行的unid此复选框链接到的文档

  • 现在,在“保存”按钮上,使用客户端脚本,您可以通过以下操作轻松获得要修改的所有文档:

    var documentsToUpdate = [];
    var checkboxes = document.getElementsByClassName("myCheckboxClass");
    for (var i = 0; i < checkboxes.length; i++) {
        var checkbox = checkboxes[i];
        if (checkbox.checked) {
            documentsToUpdate.push[checkbox.getAttribute("unid")];
        }
    }
    
    // Send the array, in a JSON format, to the server
    return XSP.toJson(documentsToUpdate);
    
    var documentsToUpdate=[];
    var checkbox=document.getElementsByClassName(“myCheckboxClass”);
    对于(变量i=0;i
  • 现在,在“保存”按钮上,使用服务器端脚本从客户端检索信息,并使用UNID数组更改所选文档中的值:

    // Get the return value from the client
    var jsonDocumentsToUpdate = context.getSubmittedValue();
    
    // Change the JSON into an array
    var documentsToUpdate = fromJson(jsonDocumentsToUpdate);
    
    // Go through the array and update the documents
    for (var i = 0; i < documentsToUpdate.length; i++) {
        var doc:NotesDocument = database.getDocumentByUNID(documentsToUpdate[i]);
        // DO YOUR CHANGES
        doc.save();
    }
    
    //从客户端获取返回值
    var jsonDocumentsToUpdate=context.getSubmittedValue();
    //将JSON更改为数组
    var documentsToUpdate=fromJson(jsonDocumentsToUpdate);
    //检查数组并更新文档
    对于(var i=0;i
  • 现在,您可以做您需要的一切。您只需检查用户在组合框中选择的内容,并根据它进行适当的更改。我认为学习这种结合客户端和服务器端代码的方法非常重要,这可以在Xpages中大量应用,以快速完成您想要的操作。

    灵感来源: