2014-03-12 33 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