【问题标题】:Customizing the appearance of DataTable button自定义 DataTable 按钮的外观
【发布时间】:2016-09-25 05:19:27
【问题描述】:

大家好。

我最近正在使用 ASP.Net (MVC 4) 处理一个 Web 应用程序,并发现了一种非常令人印象深刻的 HTML 表格,它使用 Datatable。

我能够创建与所述表的搜索元素内联的默认按钮,但我的问题是它们的外观非常简单,我一直在阅读它的文档,但我找不到改变它们外观的方法,特别是它们的背景-图像。

提前致谢

这是我的表格代码。

    <table id="exampledatatable" class="table table-striped table-bordered dt-responsive nowrap" cellspacing="0" >
        <thead>
            <tr>
                <th>Customer Code</th>
                <th>Customer Name</th>
                <th>Customer Type</th>
                <th>Industry Type</th>
                <th>Website</th>
                <th>Email</th>
                <th>Off Day 1</th>
                <th>Off Day 2</th>
                <th>E-mail</th>
                <th>Actions</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Tiger</td>
                <td>Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
                <td>61</td>
                <td>2011/04/25</td>
                <td>$320,800</td>
                <td>5421</td>
                <td>t.nixon@datatables.net</td>
                <td>
                    @Html.ActionLink("Edit", "UpdateCompany") |
                    @Html.ActionLink("Delete", "DeleteCompany") |
                    @Html.ActionLink("Restore", "RestoreCompany")
                </td>
            </tr>
       </tbody>
    </table>

这是我生成按钮的代码

<script>

        $(document).ready(function () {
            $('#exampledatatable').DataTable({
                dom: 'Bfrtip',
                buttons: [
                    {
                        extend: 'copyHtml5',
                        text: '<h4 style="font-size: 13px;"><i class="fa fa-                                              plus-circle fa-x5"></i> New</h4>',
                        titleAttr: 'Create New Record'
                    },  
                    {
                        extend: 'csvHtml5',
                        text: '<h4 style="font-size: 13px;"><i class="fa fa-pencil fa-x5"></i> Edit</h4>',
                        titleAttr: 'Edit Existing Record'
                    },
                    {
                        extend: 'csvHtml5',
                        text: '<h4 style="font-size: 13px;"><i class="fa fa-trash fa-x5"></i> Delete</h4>',
                        titleAttr: 'Delete Existing Record'
                    },
                    {
                        extend: 'pdfHtml5',
                        text: '<h4 style="font-size: 13px;"><i class="fa fa-reply-all fa-x5"></i> Restore</h4>',
                        titleAttr: 'Restore Deleted Record'
                    },
                    {
                        extend: 'pdfHtml5',
                        text: '<h4 style="font-size: 13px;"><i class="fa fa-refresh fa-x5"></i> Refresh</h4>',
                        titleAttr: 'Restore Deleted Record'
                    },
                    {
                        extend: 'pdfHtml5',
                        text: '<h4 style="font-size: 13px;"><i class="fa fa-print fa-x5"></i> Print</h4>',
                        titleAttr: 'Restore Deleted Record'
                    },
                    {
                        extend: 'pdfHtml5',
                        text: '<h4 style="font-size: 13px;"><i class="fa fa-times-circle fa-x5"></i> Close</h4>',
                        titleAttr: 'Restore Deleted Record'
                    }
               ]
            });
        });
    </script>

这是生成的 HTML 代码:

<div class="dt-buttons">
<a class="dt-button buttons-copy buttons-html5" tabindex="0" aria-controls="exampledatatable" href="#" title="Create New Record">
    <span>
        <h4 style="font-size: 13px;"><i class="fa fa-plus-circle fa-x5"></i> New</h4>
    </span>
</a>
<a class="dt-button buttons-csv buttons-html5" tabindex="0" aria-controls="exampledatatable" href="#" title="Edit Existing Record">
    <span>
        <h4 style="font-size: 13px;"><i class="fa fa-pencil fa-x5"></i> Edit</h4>
    </span>
</a>
<a class="dt-button buttons-csv buttons-html5" tabindex="0" aria-controls="exampledatatable" href="#" title="Delete Existing Record">
    <span>
        <h4 style="font-size: 13px;"><i class="fa fa-trash fa-x5"></i> Delete</h4>
    </span>
</a>
<a class="dt-button buttons-pdf buttons-html5" tabindex="0" aria-controls="exampledatatable" href="#" title="Restore Deleted Record">
    <span>
        <h4 style="font-size: 13px;"><i class="fa fa-reply-all fa-x5"></i> Restore</h4>
    </span>
</a>
<a class="dt-button buttons-pdf buttons-html5" tabindex="0" aria-controls="exampledatatable" href="#" title="Restore Deleted Record">
    <span>
        <h4 style="font-size: 13px;"><i class="fa fa-refresh fa-x5"></i> Refresh</h4>
    </span>
</a>
<a class="dt-button buttons-pdf buttons-html5" tabindex="0" aria-controls="exampledatatable" href="#" title="Restore Deleted Record">
    <span>
        <h4 style="font-size: 13px;"><i class="fa fa-print fa-x5"></i> Print</h4>
    </span>
</a>
<a class="dt-button buttons-pdf buttons-html5" tabindex="0" aria-controls="exampledatatable" href="#" title="Restore Deleted Record">
    <span>
        <h4 style="font-size: 13px;"><i class="fa fa-times-circle fa-x5"></i> Close</h4>
    </span>
</a>

【问题讨论】:

  • 使用 css 将其设置为您想要的样式。
  • 感谢您的遵守。但是我如何引用 CSS 上的按钮,因为它是使用 jquery 创建的?对不起noobness
  • 您需要展示您的代码 - 您是如何生成按钮的以及生成的 html 是什么。 (例如,您可以给按钮一个类名,或者使用#mytable td button { // add style rules } 选择它们)
  • 我已经包含了我的代码。
  • 这些按钮之一生成的实际 html 是什么?

标签: jquery asp.net asp.net-mvc-4 datatables


【解决方案1】:

类名属性更容易使用

https://datatables.net/reference/option/buttons.buttons.className

例子:

$('#table2excel').DataTable({
paging: false,
"info": false,
searching: false,
dom: 'Bfrtip',
buttons: [
    { extend: 'copy', className: 'btn btn-primary glyphicon glyphicon-duplicate' },
    { extend: 'csv', className: 'btn btn-primary glyphicon glyphicon-save-file' },
    { extend: 'excel', className: 'btn btn-primary glyphicon glyphicon-list-alt' },
    { extend: 'pdf', className: 'btn btn-primary glyphicon glyphicon-file' },
    { extend: 'print', className: 'btn btn-primary glyphicon glyphicon-print' }
]

});

使用引导图标和样式:

【讨论】:

  • 如何将className: 'btn btn-primary glyphicon glyphicon-print'改成className: 'btn btn-warning glyphicon glyphicon-print'来改变按钮颜色?
  • 这会添加指定的类,但不会删除dt-button 类,因此样式不会更改为引导类样式。
【解决方案2】:

您可以在这段代码中使用 jquery:

$('#myTable').DataTable({
        responsive: true,
        dom: 'lBfrtip',
        buttons: ['print', 'copyHtml5', 'excelHtml5', 'csvHtml5', 'pdfHtml5'],
        initComplete: function () {
            var btns = $('.dt-button');
            btns.addClass('btn btn-success btn-sm');
            btns.removeClass('dt-button');

        }
    });

【讨论】:

    【解决方案3】:

    您所有的“按钮”都有一个名为 .dt-button 的样式规则,您可以使用一些 jQuery 来遍历所有具有此样式规则的元素,如果它们满足特定条件,则将图像附加到它们:

    $('.dt-button').each(function (i, obj) {
    
        var h4 = $(this).find("h4");
    
        var text = $(h4).text().trim();
    
        if (text == "New") {
            var image = "<img src='http://www.skrenta.com/images/stackoverflow.jpg' style='width:30px;height:30px;' />"
            $(this).append(image);
        }
    });
    

    【讨论】:

      【解决方案4】:

      我没有在这里看到答案。我使用了 Font Awesome (4.7):

        var table = $(#myTable).DataTable({
            dom: 'Bfrtip',
            buttons: [{
              text: '<i class="fa fa-plus-circle" aria-hidden="true"></i> New',
              className: 'btn btn-success'
            }],
            initComplete: function() { 
              var btns = $('.dt-button');
              btns.removeClass('dt-button');
            },
        })
      

      还有链接

         <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
      

      【讨论】:

        【解决方案5】:

        宽度 Jquery,在你调用按钮之后。 像这样的:

                   $('#tabela_trab').DataTable( {
                    "paging":   false,
                    dom: 'Bfrtip',
                    buttons: [
                        'copyHtml5',
                        'excelHtml5',
                        'csvHtml5',
                        'pdfHtml5'
                    ]                 
                } );
              $(".buttons-html5").addClass("btn");
              $(".buttons-html5").addClass("btn-success");
        

        【讨论】:

          【解决方案6】:
          $('#example').DataTable({
            dom: 'Bfrtip',
            buttons: [{
                "extend": 'excel',
                "text": 'Exportar Excel',
                'className': 'btn btn-success'
              },
              {
                "extend": 'print',
                "text": 'Imprimir',
                'className': 'btn btn-info'
              }
            ],
            initComplete: function() {
              var btns = $('.dt-button');
              btns.removeClass('dt-button');
            },
          });
          

          【讨论】:

            【解决方案7】:

            您可以为按钮设置现有类.buttons-{name} 的样式。这是 excel 按钮的示例:

            .buttons-excel {
              left: 10%;
              background-color: aqua;
            }
            

            【讨论】:

              猜你喜欢
              • 2017-05-02
              • 2014-02-15
              • 2013-08-22
              • 1970-01-01
              • 1970-01-01
              • 2021-11-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多