2014-03-12 135 views
0

我想在標籤內部創建一個dojo按鈕,並且這個按鈕位於div內,而div位於datagrid的一個單元內。下面的代碼我已經寫用標籤創建一個dojo按鈕

'name': 'Value', 
'field': 'mapactions', 
'width': '30%', 
'editable': false, 
'formatter': function (data,rowIndex) 
{ 
    if (data != null) 
    { 
     var splitStr = data.split("::"); 

     var tempStr = '<div id="divValue_'+rowIndex+'">'; 

     array.forEach(splitStr, function(item, i) 
     { 
      if (i == 0) 
      { 
       tempStr = tempStr+'<div id="cellDiv_divValue_'+rowIndex+'_'+countIncrement+'" style="padding-top: 25px">'+'<span>'+item+'</span>'+'<button data-dojo-type="dijit/form/Button" type="button">Edit</button><button data-dojo-type="dijit/form/Button" type="button">Delete</button></div>'; 

       parser.parse(); 
      } 
      else 
      { 
       tempStr = tempStr+'<div id="cellDiv_divValue_'+rowIndex+'_'+countIncrement+'" style="padding-top: 25px">'+'<select data-dojo-type="dijit/form/ComboBox" style:"width: "75px"; float:"left"; margin: "0px 20px 0px 0px""><option selected>AND</option><option>OR</option></select>'+'<span>'+item+'</span>'+'<button data-dojo-type="dijit/form/Button">Edit</button>'+'<button data-dojo-type="dijit/form/Button">Delete</button>'+'</div>'; 

       parser.parse(); 
      }   
      countIncrement++; 
     }); 


     tempStr = tempStr+'</div>'; 

     return tempStr; 
    } 
    else 
    { 
     return '<div id="divValue_'+rowIndex+'"></div>'; 
    } 
} 

所有的部件都創建,但他們不看的Dojo小部件。

有人可以幫助我在這方面。

由於提前,當它被解析 尼爾默爾庫馬爾博加迪

回答

0

聲明道場標記只轉換爲小部件。在您的道場配置

設置parseOnLoad財產

  • 手動,使用dojo/parser模塊
  • 自動對DOM負載但由於這是動態地添加內容,:解析可以通過兩種方式來完成你將不得不手動解析它。您可以通過使用下面的代碼做到這一點:

    require([ "dojo/parser", "dojo/dom" ], function(parser) { 
        parser.parse(dom.byId("#test")); 
    }); 
    

    我建議你閱讀dojo/parser參考指南,它包含了很多關於小工具和分析信息。

1

在定義按鈕後,您需要將dojo/parser包含到代碼中。就像這樣:

<!DOCTYPE html> 

<title>Template Testing</title> 

<head> 

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 

    <script 
     type="text/javascript" 
     src="dojo/dojo.js" 
     dojoConfig="parseOnLoad:true,isDebug:true" > 
    </script> 

    <link rel="stylesheet" type="text/css" href="dojo/resources/dojo.css"> 
    <link rel="stylesheet" type="text/css" href="dijit/themes/dijit.css"> 
    <link rel="stylesheet" type="text/css" href="dijit/themes/claro/claro.css"> 

    <style>   
     html, body { 
      width: 100%; 
      height: 100%; 
      margin: 0; 
      padding: 0; 
      overflow: hidden; 
      font: 12px Myriad, Helvetica, Tahoma, Arial, clean, sans-serif; 
     } 
    </style> 

    <script language="Javascript" type="text/javascript"> 
     require([ 
     "dojo/dom", 
     "dijit/form/Button", 
     "dojo/domReady!", 
     "dojo/parser" 
     ], function(dom, Button, domReady, parser) {     
      dom.byId("myDiv").innerHTML = '<button data-dojo-type="dijit/form/Button" type="button">Edit</button>'+'<button data-dojo-type="dijit/form/Button" type="button">Delete</button>'; 
      parser.parse(); 
     }); 
    </script> 

</head> 

<body class="claro"> 
    <div id="myDiv"></div> 
</body> 

如果您需要更多的幫助,去這個link