jQuery DataTable设置标题单击按钮



在我的视图上,我有2个输入字段,1个按钮和1个表,其中我正在使用jQuery DataTables。

我正在使用数据表上的打印功能。

我试图根据两个输入字段的值设置打印页的标题,但它不起作用。

页面加载,两个输入字段将为空白..这是按钮发挥作用的地方。如果单击该按钮,则两个字段都有一个值,我需要将这些值合并到标题中。

这是我的jQuery:

var startDate = "";
var endDate = "";
$("#Search-Btn").click(function() {
    startDate = $("#Start-Date").val();
    endDate = $("#End-Date").val();
});
var firstTable = $("#Month-Table").DataTable({
    dom: 'Bfrtip',
    buttons: [
    {
        extend: 'print',
        title: 'Title For ' + locationName + ' ' + startDate + ' - ' + endDate,
        exportOptions: {
            columns: ':not(:last-child)'
        }
    }],
    "searching": false,
    "paging": false
});

问题:

因为数据词是在页面加载上设置的。我无法根据按钮单击按钮设置标题以合并startDateendDate。我无法基于其他事件设置数据的属性。

有办法做到这一点吗?

html

<div class="col-md-4 date-range">
    <div class="input-group date datetimepicker">
        @Html.TextBox("startDate", null, new { id = "Start-Date", @class = "form-control", @placeholder = "Start Date" })
        <span class="input-group-addon">
            <span class="fa fa-calendar"></span>
        </span>
    </div>
</div>
<div class="col-md-1 date-range">
    <p class="text-center">
        <span class="fa fa-minus"></span>
    </p>
</div>
<div class="col-md-4 date-range">
    <div class="input-group date datetimepicker">
        @Html.TextBox("endDate", null, new { id = "End-Date", @class = "form-control", @placeholder = "End Date" })
        <span class="input-group-addon">
            <span class="fa fa-calendar"></span>
        </span>
    </div>
</div>

正如我在评论中提到的那样,title选项是类型buttons.exportInfo()。您可以将任何内容评估到标题中,然后返回字符串:

...
buttons: [
            {
              extend: 'print',
              title: function() {
                  return 'Title For Location here ' + $("#Start-Date").val() + ' - ' + $("#End-Date").val();
              }
            }
        ]
...

jsfiddle

最新更新