2011-09-12 9 views
0

ここに状況があります。私の会社には、1年ほど前からあったウィジェットコントロールがあります。ウィジェットに「検索機能」を追加するように求められています。ここまでは、ウィジェットは、フィールドがクッキーを介して渡されているページ上にあります。だから私の質問は、これは古いウィジェットを参照し、実行時にそのプロパティを割り当てるテンプレート内に新しいウィジェットを作成する方法ですか?ここでウィジェットを新しいウィジェットの子にする

いくつかのサンプル

dojo.provide("company.billing.paymentSearch"); 
dojo.require("dijit._Widget"); 
dojo.require("dijit._Templated"); 
dojo.require("company.test.inquiry"); 

dojo.declare( 
    "company.billing.paymentSearch", 
    [dijit._Widget, dijit._Templated], 
{ 
    token: "", 
    serviceUrl: "", 

    templatePath: dojo.moduleUrl( 
     "company.billing", 
     "templates/paymentSearch.html" 
    ), 

    constructor: function(params, node) { 
     var self = this; 

     function onLoad() { 
      self.inquiryWidget.token = self.token; 
      self.inquiryWidget.serviceUrl = self.serviceUrl; 
      self.inquiryWidget.brandId = ""; 
      self.inquiryWidget.agencyAccountNumber = ""; 
      self.inquiryWidget.billingAccountNumber = ""; 


      self.paymentWidget.token = self.token; 
      self.paymentWidget.serviceUrl = self.serviceUrl 
     } 

     dojo.addOnLoad(onLoad); 
    }, 
    paymentSearch: function() { 
     var self = this; 
     self.inquiryWidget.billingAccountNumber = self.accountNumber; 

    } 
} 
); 

はその後、私のテンプレートは、私がやりたい何

<div> 
<div style="float:left; width:20%; border: 1px solid #CCCCCC;"> 
    <center> 
        Make a Payment 

    </center> 
    <br /> 

     Account Number 

    <br /> 
    <input style="width:85%" type="text" dojoattachpoint="accountNumber" /> 
    <br /> 
    <div class="searchButton">         

    </div> 
</div> 
<div style="float:right; width:79%"> 
    <div id="inquiryWidget" 
     dojoType="company.billing.inquiry" 
     billingAccountNumber="" 
     agencyAccountNumber="" 
     brandId="" 
     waitPanelText="Loading ..." 
     showAccountSummary = "true" 
     showAccountHistory = "false" 
     token="" 
     serviceUrl=""> 
    </div> 
</div>   

だろうであるにプロパティを追加し、検索ボタンのonclickの上にありますinquiryWidgetを起動して起動します。このようなことは可能でしょうか?

答えて

0

あなたがプログラム的にこのようなウィジェットを作成することができますのonLoad関数内

<div id="inquiryWidget" dojoAttachPoint="inquiryNode"> 


テンプレートで

function onLoad() { 
    self.inquiryWidget = new company.billing.inquiry({ 
     token: self.token, 
     serviceUrl: self.serviceUrl 
    }, self.inquiryNode); 
} 
関連する問題