具有标题属性的jQuery Bootgrid表在数据绑定后删除标题属性

时间:2019-03-25 14:35:31

标签: jquery-bootgrid

我正在尝试使用具有caption属性的非常简单的jquery bootgrid表来使标题在滚动时发粘。

<table id="grid" class="table table-condensed table-hover table-striped">
    <thead>
        <tr>
            <th caption="ID" data-column-id="id" data-type="numeric"></th>
            <th caption="Sender" data-column-id="sender"></th>
            <th caption="Received" data-column-id="received" data-order="desc"></th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

数据绑定后,呈现的表如下所示,并且数据绑定很好。

<table id="grid" class="table table-condensed table-hover table-striped">
        <thead>
            <tr>
                <th data-column-id="id" data-type="numeric"></th>
                <th data-column-id="sender"></th>
                <th data-column-id="received" data-order="desc"></th>
            </tr>
        </thead>
        <tbody>data rows goes here.                  
        </tbody>
    </table>

任何建议,如何告诉jquery-bootgrid停止删除标题属性?

非常感谢。

1 个答案:

答案 0 :(得分:0)

最后我弄清楚了,它是固定的。

在jquery.bootgrid.js文件中,找到loadColumns方法并包括如下所述的caption属性。

步骤1:更改loadColumns()方法

function loadColumns()
    {
        var that = this,
            firstHeadRow = this.element.find("thead > tr").first(),
            sorted = false;

        /*jshint -W018*/
        firstHeadRow.children().each(function ()
        {
            var $this = $(this),
                data = $this.data(),
                column = {
                    caption: $this[0].attributes.caption.value,//Find better way
                    id: data.columnId,
....
...
}

第2步:renderTableHeader()方法的更改

function renderTableHeader()
{ ....
  ....

$.each(this.columns, function (index, column)
    {
        if (column.visible)
        {

            //console.log(column.caption);
            var sortOrder = that.sortDictionary[column.id],
                iconCss = ((sorting && sortOrder && sortOrder === "asc") ? css.iconUp :
                    (sorting && sortOrder && sortOrder === "desc") ? css.iconDown : ""),
                icon = tpl.icon.resolve(getParams.call(that, { iconCss: iconCss })),
                align = column.headerAlign,
                cssClass = (column.headerCssClass.length > 0) ? " " + column.headerCssClass : "",
                caption = column.caption; //caption passed to template 
 ....
 ....   }

第3步:标题单元格模板中的更改。

找到此headercell变量,然后在模板中添加标题属性。

headerCell: "<th data-column-id=\"{{ctx.column.id}}\" caption=\"{{ctx.column.caption}}\"  class=\"{{ctx.css}}\" style=\"{{ctx.style}}\"><a href=\"javascript:void(0);\" class=\"{{css.columnHeaderAnchor}} {{ctx.sortable}}\"><span class=\"{{css.columnHeaderText}}\">{{ctx.column.text}}</span>{{ctx.icon}}</a></th>",

希望这对某人有帮助。