Dojo DGrid- как добавить кнопку в метку столбца?

Моя цель - создать dGrid, где каждый столбец имеет метку и кнопку рядом с меткой, называемой комментариями.

Только если slot_header!= "", Иначе мы скрываем столбец все вместе. У меня работает тайник, когда я передаю его "". Просто когда я передаю header = "HELLO", метка для столбца становится такой:

"ПРИВЕТ [Виджет dijit.form.Button, dijit_form_Button_19]" цель - "ПРИВЕТ" КЛЮЧЕВОЙ КНОПКЕ

Я использую PHP для создания экземпляра сетки, затем использую lang.hitch в renderCell для построения того, что входит в domNode, любая помощь будет принята с благодарностью

   $singleStudentDetail = array(
    array('field' => 'line_nbr',     'label' =>'Line',              'properties' => array('width' => $width)),
    array('field' => 'skill_desc',     'label' =>'Skill',               'properties' => array('width' => $width)),
    array('field' => 'display_slot_01', 'label' => 'Notes',
                'properties' => array('width' => 55, 'sortable' => 'false', 'renderCell' =>
                'lang.hitch(this,function(object,value,node,options){

                            node.innerHTML = object["grades_01"];

                        var myButton = new Button({
                                            label: "Click me!",
                                            onClick: function(){
                                                // Do something:
                                                alert("THIS BUTTON WORKED");
                                            }
                                        });
                        if(object["slot_headings_01"] != "")
                        {
                            studentListDetailDGridVar.columns[3].label = object["slot_headings_01"] + myButton
                        }
                        else
                            studentListDetailDGridVar.columns[3].hidden = true;
})'
                )
        ));
$DgridParamsDetail = array(
    "columns"    => $singleStudentDetail,
    "gridVar"    => "studentListDetailDGridVar",
    "gridDiv"    => "studentListDetailDiv",
    "gridProperties"    =>  array("rowsPerPage" => 15),
    "render"        =>  true

);

1 ответ

Вам нужно вернуть domNode кнопки, а не сам виджет кнопки при использовании renderCell или renderHeaderCell.

Ниже приведен пример в javascript функции renderCell, которая возвращает кнопку.

renderCell: function(object, data, td, options) {
    return new Button({
        label: "Click me!",
        onClick: function() {
            console.log("THIS BUTTON WORKED!");
        }
    }).domNode;
}
Другие вопросы по тегам