Dcat Admin 入门应用(六)列模态窗-异步数据和同步数据展示
短信预约 -IT技能 免费直播动态提醒
模式窗按需显示:通过if条件判断是否在column上添加模态窗显示
模式窗同步和异步获取数据展示
选择性添加模态窗
通过列的if判断,可以进行选择行的添加显示方式
$grid->column('remark')->if(function ($column) {
if ($this->remark) {
return $column->modal('操作内容', function ($modal) {
return CommentReview::make([
'content' => Helper::htmlEntityEncode($this->remark),
]);
});
}
});
同步数据展示
同步数据展示,页面表格渲染成功后,模态窗数据同时渲染并隐藏,触发模态窗的时候同步展示:
$grid->column('content', '专栏预览')->display(function () {
return '<a href="javascript:" style="color:#fd644e;" data-class="lazy" data-src="">查看</a>';
})->modal('专栏预览', function () {
$content = '<div>专栏标题:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->title . '</div>';
$content .= '<div style="margin-top: 20px">专栏简介:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->description . '</div>';
return "<div style='padding:10px 10px 0'>$content</div>";
});
异步数据展示
在触发模式窗的时候回通过请求服务端,获取需要展示的数据:如根据id查询数据等等
$grid->column('content', '预览')->display(function () {
return '<a href="javascript:" style="color:#fd644e;" data-class="lazy" data-src="">查看</a>';
})->modal('预览', function () {
//异步显示部分数据
return ColumnReview::make([
'columnTitle' => $this->title,
'description' => $this->description
]);
});
示例代码是通过传递title和description进行展示:也可以不传递参数,在render方法里面通过$this->getKey()获取到当前行的Id主键值,在进行数据信息的查询
<?php
namespace App\Admin\Lazy\Examine;
use Dcat\Admin\Support\LazyRenderable;
class ColumnReview extends LazyRenderable
{
public function render()
{
//$this->getKey()获取当前行的Id
//根据Id查询相关信息,输出
// TODO: Implement render() method.
$content = '<div>标题:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->columnTitle . $this->key.'</div>';
$content .= '<div style="margin-top: 20px">简介:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->description . '</div>';
return "<div style='padding:10px 10px 0'>$content</div>";
}
}
a
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341