我想要做的是当我点击使用杂货店crud呈现的表格中的自定义动作时,它将在新窗口中打开。
public function list() {
try {
$crud = new grocery_CRUD();
$crud->set_theme('flexigrid');
$crud->set_table('employee');
$crud->add_action('Create Payslip', base_url().'design/images/img.png', 'roll/emp');
$output = $crud->render();
$this->output($output);
} catch(Exception $e) {
show_error($e->getMessage().' --- '.$e->getTraceAsString());
}
}
我应该添加什么?
答案 0 :(得分:0)
你可以修改默认的杂货店crud,添加一个jquery处理程序(或者你可以使用回调添加它,如果你出于某种原因更喜欢这个)。
这个jquery处理程序将创建一些确定类的链接(例如add_action生成按钮的class属性可以是class =“edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button -text-icon-primary“)在新窗口中打开(target =”_ blank“)。
您的处理程序将是这样的:
//在这里添加在新窗口中打开链接所需的按钮类 $(“。YOUR_CLASS_NAME”)。attr(“target”,“_ blank”);
答案 1 :(得分:0)
这是在不对Grocery Crud CORE文件进行任何更改的情况下完成此工作的快速技巧。
在将输出传递到控制器中的打印功能之前,只需添加对str_replace()
的调用即可,例如:
GC主题:数据表
...
$crud->add_action('Print', '', 'admin/print_monthly_fess', 'ui-icon-print');
$output = $crud->render();
$output->output = str_replace('class="edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary"', 'class="edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" target="_blank"', $output->output); //additional line
$this->_example_output('example_template.php', $output);
GC主题:flexigrid
...
$crud->add_action('Print', base_url().'assets/grocery_crud/themes/flexigrid/css/images/print.png', 'admin/print_monthly_fess');
$output = $crud->render();
$output->output = str_replace('title="Print"', 'title="Print" target="_blank"', $output->output); //additional line
$this->_example_output('example_template.php', $output);
对于我来说,添加的动作具有给定的类/标题,但是您应该执行“查看源代码”并查看最终输出,然后找出在何处拼接target="_blank"
解决方案来源:GC forum
答案 2 :(得分:0)
这里我用jquery解决了。
$(".gc-container").on("mouseenter", "a[href*='PartURLDistincAcction']", function(){
$(this).attr('target', '_blank');
});