2012-02-16 214 views

回答

7

首先,我不擅長英語,但會盡我所能。

這是我的小部件的路徑。

enter image description here

這裏。必須聲明的js文件中的重要代碼。

dojo.provide("gissoft.dijit.widgetOam"); 

dojo.require("dojo.parser"); 
dojo.require("dijit._Widget"); 
dojo.require("dijit._Templated"); 

dojo.declare("gissoft.dijit.widgetOam", [dijit._Widget, dijit._Templated], { 
    widgetsInTemplate: true, 
    basePath: dojo.moduleUrl("gissoft.dijit"), 
    templatePath: dojo.moduleUrl("gissoft.dijit", "templates/widgetOam.html"), 

    constructor: function() { 

    }, 

    postMixInProperties: function() { 

    }, 

    postCreate: function() { 

    }, 

    startup: function() { 

    } 

}); 

而在文件widgetOam.html(的templatePath)

<div> <!-- do not add tag <html> , <head> , <body> but must have <div> first --> 
    Hello World. 
</div> 

這是如何從我的Default.aspx插件調用

之前必須先添加此打電話給道場圖書館

<script> 
    djConfig = { 
     parseOnLoad: true, 
     baseUrl: './', 
     modulePaths: { 'gissoft.dijit': 'js/gissoft/dijit' } 
    }; 
</script> 

和身體

<body class="tundra"> 
    <form id="form1" runat="server"> 
    <div> 
     <div data-dojo-type="gissoft.dijit.widgetOam"></div> 
    </div> 
    </form> 
</body> 
+0

如果我想在運行時將一個自定義Widget添加到另一個自定義Widget中,該怎麼辦?例如我做了'聲明(「_ MyCustomWidgetContainer」,...)''在其'this.domNode'中有一個'ul',並且'聲明瞭(「_ MyCustomWidgetItem」,...)'(分解爲' li'),我想插入'ul'? – 2012-05-11 12:17:38

+1

@ NeelBasu先生,如果我不想錯過這一點。你問我可以添加一個自定義的Widget到另一個自定義的Widget嗎?答案是肯定的,你可以。並看到domNode工作[這裏](http://dojotoolkit.org/documentation/tutorials/1。6/dom_functions /) – OammieR 2012-05-11 13:07:42

3

如果我理解正確的話,你是問如何包含您的自定義窗口小部件中的另一個部件。如果是這樣的話,那麼我們不得不修改OammieR的答案,因爲它對於你的問題並不完整。 要包括你的自定義窗口小部件內的其他部件,你應該將它們包含在你的widget聲明:

dojo.provide("gissoft.dijit.widgetOam"); 

dojo.require("dijit.form.Button"); //<- this the standard widget you want to have in your widget 
dojo.require("dojo.parser"); 
dojo.require("dijit._Widget"); 
dojo.require("dijit._Templated"); 

dojo.declare("gissoft.dijit.widgetOam", [dijit._Widget, dijit._Templated], { 
    widgetsInTemplate: true, 
    basePath: dojo.moduleUrl("gissoft.dijit"), 
    templatePath: dojo.moduleUrl("gissoft.dijit", "templates/widgetOam.html"), 

特別重要的是「widgetsInTemplate:真」的一部分,它告訴解析器期望部件內部的部件。

然後,您只需爲要包含在小部件模板中的特定小部件添加HTML標記即可。

<div> <!-- do not add tag <html> , <head> , <body> but must have <div> first --> 
    <button data-dojo-type="dijit.form.Button" type="button" data-dojo-attach-point="_innerWidget" data-dojo-attach-event="ondijitclick:_onClick">Yo!</button> 
</div> 

dojoAttachPoint是有用的,讓你可以在你的widget的實現這個widget通俗易懂的參考,而不通過dijit.byId(「」),得到一個參考。

希望這會有所幫助。

相關問題