最佳答案
$grid->column('field', '链接')->display(function () {
return sprintf("<a href='%s' target='_blank'>%s</a>",$url, $this->field );
});
讨论数量:
$grid->column('field', '链接')->display(function () {
return sprintf("<a href='%s' target='_blank'>%s</a>",$url, $this->field );
});
用JS,获取Button对象,然后绑定click事件,事件中window.location = 你要去的页面,button的type属性设置为button,别设置成submit
用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;
});
推荐文章: