0

私の目標は、各列にラベルと、コメントと呼ばれるラベルのすぐ隣にあるボタンがある dGrid を作成することです。

slot_header != "" の場合のみ、それ以外の場合は列をまとめて非表示にします。「」を渡すと、隠蔽が機能します。header = "HELLO" を渡すと、列のラベルは次のようになります。

"HELLO[Widget dijit.form.Button, dijit_form_Button_19]" ゴールは "HELLO"CLICKABLEBUTTON

私はPHPを使用してグリッドをインスタンス化し、次にrenderCellでlang.hitchを使用して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

);
4

1 に答える 1

2

renderCell または renderHeaderCell を使用する場合、ボタン ウィジェット自体ではなく、ボタンの domNode を返す必要があります。

以下は、ボタンを返す renderCell 関数の JavaScript の例です。

renderCell: function(object, data, td, options) {
    return new Button({
        label: "Click me!",
        onClick: function() {
            console.log("THIS BUTTON WORKED!");
        }
    }).domNode;
}
于 2014-03-20T06:15:40.250 に答える