2014-03-13 167 views
0

我的目標是創建一個dGrid,其中每列都有一個標籤和一個名爲comments的標籤旁邊的按鈕。Dojo DGrid-如何將按鈕添加到列標籤中?

只有當slot_header!=「」時,否則我們將所有列全部隱藏起來。當我通過它時,我有隱藏的工作「」。這只是當我做通頭=「HELLO」,該列的標籤就變成了:

「HELLO [小工具dijit.form.Button,dijit_form_Button_19]」我們的目標是「HELLO」 CLICKABLEBUTTON

我用PHP來實例化網格,然後用lang.hitch在renderCell建設什麼樣的進入れ,任何幫助,將不勝感激

$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 

); 

回答

2

您需要返回按鈕,而不是按鈕控件本身的れ當使用renderCell或renderHeaderCell。

下面是一個返回按鈕的renderCell函數的javascript示例。

renderCell: function(object, data, td, options) { 
    return new Button({ 
     label: "Click me!", 
     onClick: function() { 
      console.log("THIS BUTTON WORKED!"); 
     } 
    }).domNode; 
} 
+0

您的意思是使用

+0

不,我只是在你的renderCell函數中,返回button.domNode而不是按鈕對象。 renderCell函數將所有返回給它的東西直接放在單元格中,這樣返回一個小部件對象就是[Widget ...]的功能,但是如果你返回domNode,它應該可以正常工作。 – Richard

+0

我編輯了我的答案,在JavaScript中包含了一個示例 – Richard

相關問題