请问laravel-admin如何实现点击一行的某个地方实现跳转

点击一行内的某个地方,可以跳转另外一个页面

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案
$grid->column('field', '链接')->display(function () {
            return sprintf("<a href='%s' target='_blank'>%s</a>",$url, $this->field );
        });
3个月前 评论
Ceeport (楼主) 3个月前
讨论数量: 5

用JS,获取Button对象,然后绑定click事件,事件中window.location = 你要去的页面,button的type属性设置为button,别设置成submit

3个月前 评论
Ceeport (楼主) 3个月前
$grid->column('field', '链接')->display(function () {
            return sprintf("<a href='%s' target='_blank'>%s</a>",$url, $this->field );
        });
3个月前 评论
Ceeport (楼主) 3个月前
3个月前 评论
Ceeport (楼主) 3个月前

用js事件委托,将tr的点击事件委托给表格,监听表格点击,获取到对应的tr,如果有action,可以直接手动触发他的点击

\Admin::script(
<<<JS
// 监听双击事件可能更好,单击容易误操作
$('.grid-table').on('dblclick',function(e){
    // 这里可以拿到这一行的key
    var itemKey = $(e.target).parent('tr').attr('data-key');
    var url = '/admin/leave-audits/'+itemKey;
    console.log(itemKey,url);
    // 页面跳转
    // location.href=url;
    // 也可以触发其他的动作,比如显示bootstrap弹窗什么的,或者发ajax
    // 假如有模态框,就可以手动将其显示出来
    var targetModal = $('#my-modal-refuse-'+itemKey);
    targetModal.modal('show');
});
JS
);

如果只需要点击名字跳转:

\Admin::script(
            <<<JS
            // 触发任意js函数
            window.aa=function(aa){
                alert(aa);
            }
        JS
        );
        $grid = new Grid(new modelClass);
        $grid->column('id', __('Id'))->display(function($f){
        // 只跳转的话这么写也可以
            return <<<html
            <span onclick="location.href='/admin/members/$this->id'">$f</span>
html;
        });;
        // 或者也可以触发任意js函数,只要在new Grid之前把函数挂载到全局对象就行,可以用来做弹窗什么的
        $grid->column('member.member_name', __('Member name'))->display(function($f){
            return <<<html
            <span onclick="aa('$f')">$f</span>
html;
        });

2个月前 评论
$grid->column('field', '链接')->link(function ($value) {
    return admin_url('/users/'.$value);
});
2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!