上传按钮能放在工具条吗

提问 已结 15 394
天线得得zero
悬赏:20飞吻
上传按钮能放在工具条吗,具体如何操作,困惑了很久
回帖
  • IDyun
    2019-4-9

    简单上传例子
    https://www.layui.com/demo/
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="//res.layui.com/layui/dist/css/layui.css" media="all">
    <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
    </head>
    <body>

    <table class="layui-hide" id="test" lay-filter="test"></table>

    <script type="text/html" id="toolbarDemo">
    <div class="layui-btn-container">
    <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
    <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
    <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
    <button class="layui-btn demoMore" lay-data="{url: '/a/'}">上传A</button>
    </div>
    </script>

    <script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>


    <script src="//res.layui.com/layui/dist/layui.js" charset="utf-8"></script>
    <!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->

    <script>
    layui.use(['table','upload'], function(){
    var table = layui.table,upload = layui.upload;

    table.render({
    elem: '#test'
    ,url:'/test/table/demo1.json'
    ,toolbar: '#toolbarDemo'
    ,title: '用户数据表'
    ,cols: [[
    {type: 'checkbox', fixed: 'left'}
    ,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true}
    ,{field:'username', title:'用户名', width:120, edit: 'text'}
    ,{field:'email', title:'邮箱', width:150, edit: 'text', templet: function(res){
    return '<em>'+ res.email +'</em>'
    }}
    ,{field:'sex', title:'性别', width:80, edit: 'text', sort: true}
    ,{field:'city', title:'城市', width:100}
    ,{field:'sign', title:'签名'}
    ,{field:'experience', title:'积分', width:80, sort: true}
    ,{field:'ip', title:'IP', width:120}
    ,{field:'logins', title:'登入次数', width:100, sort: true}
    ,{field:'joinTime', title:'加入时间', width:120}
    ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
    ]],done:function(){

    }
    ,page: true
    });

    //同时绑定多个元素,并将属性设定在元素上
    upload.render({
    elem: '.demoMore'
    ,before: function(){
    layer.tips('接口地址:'+ this.url, this.item, {tips: 1});
    }
    ,done: function(res, index, upload){
    var item = this.item;
    console.log(item); //获取当前触发上传的元素,layui 2.1.0 新增
    }
    })

    //头工具栏事件
    table.on('toolbar(test)', function(obj){
    var checkStatus = table.checkStatus(obj.config.id);
    switch(obj.event){
    case 'getCheckData':
    var data = checkStatus.data;
    layer.alert(JSON.stringify(data));
    break;
    case 'getCheckLength':
    var data = checkStatus.data;
    layer.msg('选中了:'+ data.length + ' 个');
    break;
    case 'isAll':
    layer.msg(checkStatus.isAll ? '全选': '未全选');
    break;
    };
    });

    //监听行工具事件
    table.on('tool(test)', function(obj){
    var data = obj.data;
    //console.log(obj)
    if(obj.event === 'del'){
    layer.confirm('真的删除行么', function(index){
    obj.del();
    layer.close(index);
    });
    } else if(obj.event === 'edit'){
    layer.prompt({
    formType: 2
    ,value: data.email
    }, function(value, index){
    obj.update({
    email: value
    });
    layer.close(index);
    });
    }
    });
    });
    </script>

    </body>
    </html>
    0 回复
  • 可以的,就按你现在写的这样啊。放进<script>标签里面
    0 回复
  • @Alose 但是调用不了控件,我不知道是不是代码问题,我之前也是放在<script>里面的
    0 回复

  • 这分别是代码和调用方式
    0 回复
  • IDyun
    2019-4-9
    在数据表格渲染完的回调 done 中绑定 上传事件。
    0 回复
  • @天线得得zero 你试试通过iD去触发点击事件。上传代码还是和你没放在头工具栏一样写
    0 回复
  • <!--头部工具-->
    <script type="text/html" id="toolbarDemo">
    <div class="layui-btn-container">
    <button class="layui-btn layui-btn-radius layui-btn-sm layui-btn-danger" id="daoru">
    <i class="layui-icon layui-icon-upload-circle"></i>批量导入</button>
    </div>
    </script>


    --------------------------------------------------------------------
    /*批量新增导入文件*/
    upload.render({
    elem:'#daoru',
    url:'/user/uploadExcel',
    accept:'file',
    exts:'XLSX|XLS', //只允许上传excel文件
    done:function (res) {
    if(true == res){
    layer.msg("导入成功");
    }else {
    layer.msg("导入失败,请确认数据是否正确!");
    }
    reloadTable();
    },
    dataType:"json"
    });
    我是直接给个ID 然后直接写官网那个上传的方式
    0 回复
  • @Alose 我这边不行哦,能加个qq教一下,困扰了很久了,之前打算不放在头工具的,但是现在又有一个相似的功能,想解决一下,或者发个demo,整个页面的
    0 回复
  • @天线得得zero 页面按钮代码 ,js代码贴一下我看看
    0 回复
  • @IDyun 如何渲染绑定,求教
    0 回复