`
zgqynx
  • 浏览: 1355545 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

displayTag 给行加事件 row event

阅读更多
displayTag  给行加事件 row event
http://jira.codehaus.org/browse/DISPL-92
这是偶然间找到的一般文章,有此需求的可以看看

Here's something you can use while you wait for this feature to be added.

function highlightTableRows(tableId) {
    var previousClass = null;
    var table = document.getElementById(tableId);
    var tbody = table.getElementsByTagName("tbody")[0];
    var rows = tbody.getElementsByTagName("tr");
    // add event handlers so rows light up and are clickable
    for (i=0; i < rows.length; i++) {
        rows[i].onmouseover = function() { previousClass=this.className;this.className+=' over' };
        rows[i].onmouseout = function() { this.className=previousClass };
        rows[i].onclick = function() {
            var cell = this.getElementsByTagName("td")[0];
            if (cell.getElementsByTagName("a").length > 0) {
                var link = cell.getElementsByTagName("a")[0];
                if (link.onclick) {
                    call = link.getAttributeValue("onclick");
                    // this will not work for links with onclick handlers that return false
                    eval(call);
                } else {
                  location.href = link.getAttribute("href");
                }
                this.style.cursor="wait";
            }
        }
    }
}

I put this in a global .js file and then call it after my </display:table> using:

<script type="text/javascript">highlightTableRows("userList");</script>

Where my table has an id:

<display:table id="userList">

===============================================================================

I have done a similar thing as above but expanded on it. You can only highlight one row. We wanted to do that coz we only we wanted to apply some kind of action to that row only.


/**
 * This JavaScript performs the task of highlighting a row in a displayTag table.
 * The javascript is called by adding the following line in your JSP page after the
 * declaration of your display tag
 * <script type="text/javascript">highlightTableRows("searchResultTO");</script>
 * An example is as follows:
 * <html>
 * <body>
 * <displaytag:table name="${sessionScope.searchResultList}" id="searchResultTO"/>
 * <script type="text/javascript">highlightTableRows("searchResultTO");</script>
 * </body>
 * </html>
 */



/**
 * This function after the displayTag table has been created adds a onclick event
 * handler to each row in the table. The onclick event will first reset all rows to
 * the default background color which is white and then assign the clicked row to the
 * highlight color which is a light green.
 */
function highlightTableRows(tableId) {
    var previousClass = '';
    var table = document.getElementById(tableId);
    var tbody = table.getElementsByTagName("tbody")[0];
    var rows = tbody.getElementsByTagName("tr");
    // add event handlers so rows light up and are clickable
    for (i=0; i < rows.length; i++) {
        rows[i].onmouseover = function() {
this.style.cursor="hand";
};

rows[i].onmouseout = function() {
this.style.cursor='';
};

        rows[i].onclick = function() {
//reset all styles to blank for all rows
resetStylesAroundRow(this);
this.style.backgroundColor = "#74BAB7";
            var cell = this.getElementsByTagName("td")[0];
            if (cell.getElementsByTagName("a").length > 0) {
                var link = cell.getElementsByTagName("a")[0];
                if (link.onclick) {
                    call = link.getAttributeValue("onclick");
                    // this will not work for links with onclick handlers that return false
                    eval(call);
                } else {
                  location.href = link.getAttribute("href");
                }
                this.style.cursor="wait";
            }
        };
    }
}

/**
 * Resets the table rows back to the default color.
 */
function resetStylesAroundRow(row) {
    var previousClass = '';
    var table = row.parentElement.parentElement;
    var tbody = table.getElementsByTagName("tbody")[0];
    var rows = tbody.getElementsByTagName("tr");
    for (i=0; i < rows.length; i++) {
        rows[i].style.backgroundColor = "white";
    }
}
分享到:
评论

相关推荐

    displaytag及使用方法

    DisplayTag是一个开源的Java库,专门用于在Web应用程序中创建复杂的表格。它提供了一系列的标签和功能,使得在JSP页面上展示数据变得更加容易和灵活。DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发...

    DisplayTag应用

    `testit` 对象表示当前行的对象,而 `testit_rowNum` 对象提供了当前行的编号。 五、与其他标签库的集成 DisplayTag 与 JSTL 等其他标签库有很好的兼容性。可以通过隐含对象与 JSTL 标签结合使用,如 `&lt;c:out&gt;` 或 ...

    displaytag-1.1 源码

    Displaytag是一个开源的Java库,专门用于创建复杂的表格和数据展示。在1.1版本中,它主要解决了在处理大数据分页时的问题,这使得它成为处理大量数据的理想选择,尤其是在Web应用程序中。这个源码包包含了一系列的...

    displaytag标签使用

    最基本的使用方式是在JSP页面中设置`&lt;display:table&gt;`标签,将一个集合对象(如List)赋值给`name`属性,DisplayTag会自动遍历集合中的每个对象,显示其所有公共getter方法对应的属性。例如: ```jsp ( "test", ...

    displaytag详细用法(中文问题已解决)

    13. **事件处理**:DisplayTag提供了一些预定义的JavaScript事件,如`onrowclick`、`onrowdblclick`,开发者可以通过这些事件进行进一步的交互设计。 总的来说,DisplayTag是一个强大的表格标签库,它简化了Web应用...

    displaytag标签的使用

    DisplayTag 是一个强大的开源 JSP 标签库,专门用于处理网页中的表格展示。它提供了丰富的功能,如分页、数据导出、列排序和分组等,极大地简化了网页表格的开发工作。要使用 DisplayTag,首先需要从其官方网站...

    displaytag的使用指南(全)

    ### DisplayTag 使用指南详解 #### 一、简介 DisplayTag 是一个开源的 Java Web 标签库,主要用于处理数据表格的展示与交互。它能够帮助开发者轻松地将 JavaBean 集合转换成 HTML 表格,并且支持排序、分页等功能...

    displaytag简明使用示例

    只需将List对象赋值给request,然后在页面上使用`&lt;display:table name="test" /&gt;`标签,DisplayTag会自动遍历List中的每个对象,将对象的所有公共属性展示在表格中。这种方法在开发初期用于快速查看对象数据是十分...

    displaytag的使用方法

    - **自定义行样式**:通过 `rowClasses` 属性,可以为不同类型的行指定不同的 CSS 类。 - **自定义列模板**:可以使用 `&lt;display:column&gt;` 的 `decorator` 属性指定自定义的渲染器。 Displaytag 还提供了许多其他...

    displayTag1.2

    DisplayTag是Java Web开发中的一款强大且功能丰富的表格标签库,它为开发人员提供了一种高效、易用的方式来展示表格数据。DisplayTag 1.2是这个库的一个版本,包含了源码和对应的jar包,方便开发者进行查看和使用。 ...

    DisplayTag标签使用说明

    &lt;display:column title="row number (testit_rowNum)"&gt;("testit_rowNum")%&gt; ``` 这里的`testit_rowNum`属性提供了当前行的编号,可以方便地在列中显示。 **6. 其他高级功能** DisplayTag 还支持更多的特性,如...

    用JavaScript操作displayTag表头操作

    这篇博客“用JavaScript操作displayTag表头操作”显然关注的是如何利用JavaScript来操纵一个名为`displayTag`的表格库的表头功能。DisplayTag是一个功能丰富的开源Java Web组件库,它提供了一种强大的方式来展示表格...

    displaytag-1.2.jar

    displaytag-1.2.jar 显示标签

    displaytag-1.2-bin&displaytag-1.2-src Java分页组件/插件

    DisplayTag是一个功能强大的Java开源分页和表格展示组件,它为Web开发提供了高效、灵活的解决方案。这个组件在Java社区中被广泛应用,因为其能够帮助开发者轻松实现数据的分页和排序,极大地提高了开发效率。 标题...

    displaytag简单项目

    4. **自定义样式**:使用CSS来定制表格的外观,或者通过DisplayTag的属性来改变默认样式,例如设置表头样式、行样式等。 5. **导出功能实现**:通过DisplayTag的`export`属性,可以轻松实现表格数据的导出,只需...

    自己整理的DisplayTag标签的使用

    ### DisplayTag标签库详解与应用 #### 显示与管理数据的新维度:DisplayTag标签库 在Web开发领域,特别是Java Web开发中,处理和展示大量数据列表是一项常见但又复杂的工作。DisplayTag作为一款功能强大的标签库,...

    Displaytag实现分页

    - Displaytag 还支持许多其他功能,如导出、列隐藏、行样式、国际化等。你可以通过添加不同的属性或标签来定制你的表格。 - 例如,你可以使用 `export` 属性来控制是否允许用户导出表格数据,`sortable` 属性控制...

Global site tag (gtag.js) - Google Analytics