javascript - 通过模式复选框选择将一个文档添加到另一个文档

标签 javascript html twitter-bootstrap xpages

总体而言,我对 xpages 和 IBM 以及 JavaScript 都是新手。因此,为了让您更容易理解我的问题,我添加了一个我想要做的示例。

示例:我创建了一个人员文档,现在我想向该人员添加一个事件,反之亦然(这意味着当我向该人员添加一个事件时,人员就会添加到该事件中)。

所以我使用文档只读模式来预览 Person 文档,在该只读模式中我有一个 <xp:panel>其中包含 Bootstrap 面板。在 Bootstrap 面板的标题中,有一个连接到模式的按钮,其中包含事件文档的 View 。在 Bootstrap 面板的主体中有一个 View ,我可以在其中预览添加的事件。

在模式中,我在第一列中添加了复选框,因此我可以选择要添加到个人文档中的项目。

我需要添加什么操作到模式的“添加”按钮,以将选定的文档添加到个人文档中?

<xp:panel>
        <xp:this.rendered><![CDATA[#{javascript:!DodajOseb.isNewNote() !DodajOseb.isEditable()}]]></xp:this.rendered>

        <div class="panel panel-default" style="margin-left:auto;margin-right:auto;width:60%">
            <div class="panel-heading">
                <h3 class="panel-title">
                    Events
                    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" style="margin-left:80%;">
                        Add an event
                    </button>
                </h3>

                <!-- Modal -->
                <div id="myModal" class="modal fade" role="dialog">
                    <div class="modal-dialog">

                        <!-- Modal content-->
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal">
                                    <span class="glyphicon glyphicon-remove-circle"></span>
                                </button>
                                <h4 class="modal-title">
                                    Choose events&#160;<small>that you want to add</small>
                                </h4>
                            </div>
                            <div class="modal-body">
                                <p>
                                    <xp:panel>
                                        <xp:this.data>
                                            <xp:dominoView var="DogodekView" viewName="Dogodki_Rez" keys="#{javascript:sessionScope.imeDogodka}">
                                            </xp:dominoView>
                                        </xp:this.data>
                                        <xp:viewPanel rows="7" id="viewPanel1" viewStyle="width:100.0%">
                                            <xp:this.facets>
                                                <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1">
                                                </xp:pager>
                                            </xp:this.facets>

                                            <xp:this.data>
                                                <xp:dominoView var="Dogodki" viewName="Dogodki" keys="#{javascript:sessionScope.imeDogodka}">
                                                </xp:dominoView>
                                            </xp:this.data>

                                            <xp:viewColumn columnName="NMnaziv" id="viewColumn2" style="text-align:center" showCheckbox="true">
                                                <xp:viewColumnHeader value="Event" id="viewColumnHeader2" style="text-align:center">
                                                </xp:viewColumnHeader>
                                            </xp:viewColumn>
                                            <xp:viewColumn columnName="RadioButton" id="viewColumn4" style="text-align:center">
                                                <xp:viewColumnHeader value="Duration" id="viewColumnHeader4" style="text-align:center">
                                                </xp:viewColumnHeader>
                                            </xp:viewColumn>
                                            <xp:viewColumn columnName="TXlokacija" id="viewColumn15" style="text-align:center">
                                                <xp:viewColumnHeader value="Location" id="viewColumnHeader15" style="text-align:center">
                                                </xp:viewColumnHeader>
                                            </xp:viewColumn>
                                            <xp:viewColumn columnName="AUorganizator" id="viewColumn16" style="text-align:center">
                                                <xp:viewColumnHeader value="Author" id="viewColumnHeader16" style="text-align:center">
                                                </xp:viewColumnHeader>
                                            </xp:viewColumn>
                                        </xp:viewPanel>
                                    </xp:panel>
                                </p>
                            </div>
                            <div class="modal-footer">

                                <xp:button value="Save" id="button6">
                                    <xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler>
                                </xp:button>
                            </div>
                        </div>

                    </div>
                </div>
            </div>
            <div class="panel-body">
                <xp:panel id="panelMain">
                    <xp:this.data>
                        <xp:dominoView var="view1" viewName="Dogodki">
                        </xp:dominoView>
                    </xp:this.data>
                    <xp:text escape="true" id="computedField1" style="display:none;">
                        <xp:this.value><![CDATA[#{javascript://*var vw:NotesView = database.getView("(vwPovezava)"); requestScope.data = new Array(@DbLookup("","(vwPovezava)","385A946ECD7C3207C1257E58002DE8A3",2),"467DD3771032D779C1257E570043CF5D");}]]></xp:this.value>
                    </xp:text>
                    <div class="row">
                        <div class="col-md-2">
                            <xp:label value="" id="label2">Event</xp:label>
                        </div>
                        <div class="col-md-2">
                            <xp:label value="" id="label4">Duration</xp:label>
                        </div>
                        <div class="col-md-2">
                            <xp:label value="" id="label5">Starting date</xp:label>
                        </div>
                        <div class="col-md-2">
                            <xp:label value="" id="label6">Ending date</xp:label>
                        </div>
                        <div class="col-md-2">
                            <xp:label value="" id="label7">Location</xp:label>
                        </div>
                        <div class="col-md-2">
                            <xp:label value="" id="label8">Author</xp:label>
                        </div>
                    </div>
                    <xp:br></xp:br>
                    <xp:repeat id="repeat1" rows="30" var="rowData" indexVar="indexData" value="#{javascript:requestScope.data}" style="text-align:center;">
                        <div class="row" rows="0">
                        <xp:text escape="true" id="computedField3" style="display:none;">
                            <xp:this.value><![CDATA[#{javascript:var vw = database.getView("Dogodki"); requestScope.docData = vw.getDocumentByKey(rowData);}]]></xp:this.value>
                        </xp:text>

                        <div class="col-md-2">
                        <xp:text escape="true" id="event" tagName="div" style="float:left;">
                            <xp:this.value><![CDATA[#{javascript:return requestScope.docData.getItemValueString("NMnaziv");}]]></xp:this.value>
                        </xp:text>
                        </div>
                        <div class="col-md-2">
                        <xp:text escape="true" id="duration" tagName="div" style="float:left;">
                            <xp:this.value><![CDATA[#{javascript:return requestScope.docData.getItemValueString("RadioButton");}]]></xp:this.value>
                        </xp:text>
                        </div>
                        <div class="col-md-2">
                        <xp:text escape="true" id="startingDate" tagName="div" style="float:left;">
                            <xp:this.value><![CDATA[#{javascript:return requestScope.docData.getItemValue("TXodDatuma");}]]></xp:this.value>
                        </xp:text>
                        </div>
                        <div class="col-md-2">
                        <xp:text escape="true" id="endingDate" tagName="div" style="float:left;">
                            <xp:this.value><![CDATA[#{javascript:return requestScope.docData.getItemValue("TXdoDatuma");}]]></xp:this.value>
                        </xp:text>
                        </div>
                        <div class="col-md-2">
                        <xp:text escape="true" id="location" tagName="div" style="float:left;">
                            <xp:this.value><![CDATA[#{javascript:return requestScope.docData.getItemValueString("TXlokacija");}]]></xp:this.value>
                        </xp:text>
                        </div>
                        <div class="col-md-2">
                        <xp:text escape="true" id="author" tagName="div" style="float:left;">
                            <xp:this.value><![CDATA[#{javascript:return requestScope.docData.getItemValueString("AUorganizator");}]]></xp:this.value>
                        </xp:text>
                        </div>
                        <div style="clear:both;">&#160;</div>
                        </div>
                    </xp:repeat>
                </xp:panel>
            </div>
        </div>
    </xp:panel>'

最佳答案

我建议您不要尝试将事件添加到人员文档中,而只需将人员姓名添加到所选每个事件文档的与会者字段中即可。然后,您可以使用我们所说的“旧笔记”(单类别嵌入 View )来显示已添加该人员的事件。

挑战在于您有该模式,但值没有保存在任何地方。当数据未绑定(bind)到文档时保存文档意味着复选框列的选择没有意义。目前这一切都只是信息的显示。如果您使用该 XPage 重新打开文档,则重新打开模式时不会检查任何内容。

请参阅@SerdarBasegmez对此问题的回答,了解如何将人员姓名添加到检查的每个文档中:How to get marked rows in the XPages Extension Library <xe:dataView> design element?

关于javascript - 通过模式复选框选择将一个文档添加到另一个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30636909/

相关文章:

javascript - HTML5 我可以将 <img> 与 <source> 一起使用吗

javascript - Ember.js - Ember.Js View inside handlebars 条件 : view not being displayed?

javascript - service worker 缓存需要时间来响应延迟

javascript - 使用 jQuery 在滚动条上重新定位元素

css - 如何在移动设备中查看时更改 Bootstrap 网格中的布局?

javascript - TableSorter可点击但无法排序

html - 包装背景图像不会从页面上消失

javascript - div中的li等间距用CSS或JS

html - 如何获取有效的 HTML 或 Markdown 前 300 个字符?

javascript - 如果用户点击“返回”,如何隐藏上一页上的 Bootstrap 模式?