v3.1.2020.0115   X组件内部目录统一使用BasePath,支持命令行参数与环境变量,便于函数计算
大石头 编写于 2020-01-15 01:22:07
NewLife.Cube
@using NewLife;
@using NewLife.Web;
@using XCode;
@{
    var fact = ViewBag.Factory as IEntityOperate;
    var page = ViewBag.Page as Pager;

    var act = ViewBag.Action as String;
    if (act.IsNullOrEmpty()) { act = Url.Action("Index"); }

    var set = ViewBag.PageSetting as PageSetting;
}
<div class="tableTools-container">
    <div class="form-inline">
        <form action="@Html.Raw(page.GetFormAction(act))" method="post" role="form">
            @if (set.EnableAdd && this.Has(PermissionFlags.Insert))
            {
                var rv = page.GetRouteValue();
                @Html.ActionLink("添加", "Add", rv, new { @class = "btn btn-success btn-sm" }.ToDictionary())
            }
            @if (set.EnableSelect)
            {
                <div class="form-group toolbar-batch">
                    @Html.Partial("_List_Toolbar_Batch")
                </div>
            }
            <div class="pull-right form-group">
                @Html.Partial("_List_Search")
                @Html.Partial("_List_Toolbar_Search")
                @Html.Partial("_List_Toolbar_Adv")
            </div>
        </form>
    </div>
</div>
@if (set.EnableSelect)
{
    <script>
        $(function () {
            var $toolbarContext = $('.toolbar-batch'),
                $batchButtons = $('button[data-action="action"], input[data-action="action"]'), //button, input=button, a 3种类型都可以
                $table = $('.table'),
                $keys = $('input[name="keys"]', $table);

            $table.on('click', '#chkAll', function () {
                // 全选
                $keys.prop('checked', this.checked);
                // 启用禁用批量操作区
                $batchButtons.prop('disabled', !this.checked);
            });

            $table.on('click.checked', 'tbody input[name="keys"]', function (e) {
                //页面中所有的checkbox
                var allbox = $table.find('tbody :checkbox[name="keys"]');
                //页面中所选中的checkbox
                var selecteds = $table.find('tbody :checkbox:checked[name="keys"]');
                if (selecteds.length > 0) {
                    // 启用禁用批量操作区
                    $batchButtons.prop('disabled', false);
                    //需要判断当前页面所有行的checkbox是否都选中,以此来决定是否需要改变checkbox#chkAll 的状态
                    if (allbox.length == selecteds.length) {
                        $table.find('#chkAll').prop('checked', true);
                    } else {
                        $table.find('#chkAll').prop('checked', false);
                    }
                }
                else {
                    $batchButtons.prop('disabled', true);
                    $table.find('#chkAll').prop('checked', false);
                }
            });
        })
    </script>
}