XPages bootstrap css未应用于动态生成的项目

时间:2014-12-27 12:45:56

标签: twitter-bootstrap-3 xpages

我们最近开始在我们的应用程序中添加bootstrap,并且苦苦寻求一些我认为的基础知识。

所以,我们有一个传统扩展库" dropDownButton"在我们的页面上运行得非常好,但是,对于bootstrap,我们使用bootstrap网站上建议的普通html列表菜单,除了菜单是动态生成外,一切都很好用。请参阅以下代码:

<div class="btn-group" role="group">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
 Menu
 <span class="caret"></span>
 </button>
 <ul class="dropdown-menu" role="menu">
    <li class="dropdown-submenu"><a href="#">New</a>
         <ul class="dropdown-menu">
             <li class="dropdown-submenu"><a tabindex="-1" href="#">Document</a>
                 <ul class="dropdown-menu">
                 <xp:repeat id="repeat1" rows="30" var="documentName"
                    indexVar="documentIndex">
                    <xp:this.value>
                      <![CDATA[#{javascript: //some processing; return z;}]]>
                    </xp:this.value>
                    <xp:text tagName="li" escape="false" styleClass="red">
                       <xp:this.value><![CDATA[#{javascript:
                       return '<a>' + documentName + '</a>';}]]></xp:this.value>
                     </xp:text>
                  </xp:repeat>
            </ul>
       </li> 
     </ul>  
     </li>
</ul>
</div>

在上面的代码中,一切都很好,除了在重复控件中动态生成的东西。查看源代码一切都是完美生成的,因此,我们认为css不适用于动态生成的元素。现在通常不应该这样(通常应该使用css),但我不确定这里有什么问题。

真的很感激任何帮助。

注意:我们现在没有使用Bootstrap4Xpages(我们刚刚添加了bootstrap特定的库。

3 个答案:

答案 0 :(得分:1)

当您查看文档时,示例说:

<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>

上面的代码既不会生成li元素的角色,也不会生成anchor元素的角色。 AFAIK您需要重新排序代码以包含这些属性。

答案 1 :(得分:1)

我刚刚使用重复测试BS文档中的代码,它运行良好:

<div
                        class="dropdown">
                        <button
                            class="btn btn-sm btn-default dropdown-toggle"
                            type="button"
                            id="dropdownMenu1"
                            data-toggle="dropdown"
                            aria-expanded="true">
                            Dropdown
                            <span
                                class="caret"></span>
                        </button>
                        <ul
                            class="dropdown-menu"
                            role="menu"
                            aria-labelledby="dropdownMenu1">
                            <xp:repeat
                                var="documentName">
                                <xp:this.value><![CDATA[#{javascript:return ["Action 1", "Action 2", "Action 3"]}]]></xp:this.value>
                                <li
                                    role="presentation">
                                    <a
                                        role="menuitem"
                                        tabindex="-1"
                                        href="#">
                                        <xp:text
                                            value="#{documentName}"></xp:text>
                                    </a>
                                </li>
                            </xp:repeat>
                        </ul>
                    </div>

我发现你在下拉容器中使用了另一个UL - 这是不正确的,参考版本3.2 / 3.3的文档。 在这里查看它的实时演示:http://www.notesx.net/bs3template.nsf/samples.xsp

答案 2 :(得分:0)

所以,最后有两个问题:

  1. 带有重复控件的ID属性:以某种方式给予重复控制的任何id属性都会破坏css(可能是因为XPage中的动态id生成?)

  2. Stwissel的回答:必须以某种方式添加boostrap的文档中提到的角色和其他属性(以及stwissel的回答)以获得正确的CSS。

  3. 只是为了显示更正的答案(仅重复循环)

    <!-- I have just removed the id="repeat1" -->
    <xp:repeat rows="30" var="documentName"
                        indexVar="documentIndex"> 
                        <xp:this.value>
                          <![CDATA[#{javascript: //some processing; return z;}]]>
                        </xp:this.value>
                        <xp:text tagName="li" escape="false" role="presentation">
                           <xp:this.value><![CDATA[#{javascript:
                           return '<a role="menuitem" tabindex="-1" href="#">' + documentName + '</a>';}]]></xp:this.value>
                         </xp:text>
    </xp:repeat>
    

    非常感谢所有的帮助,否则我们无法得到这个答案。