2012-10-10 127 views
2

我在訪問頁面模板的DWT中的包變量時遇到問題。訪問Dreamweaver中的包變量問題

我有4層TBB的複合頁面模板如下:

1)恆TBB - 這TBB讀作鍵值對的成分(嵌入式多值組件)的所有值,並將其推到包。 E.g:

Item item = this._package.CreateStringItem(contentType, "test"); 
this._package.PushItem("key", item); 

2)頁面模板的C#DLL - 這包含頁面模板

3)DWT頁面模板的邏輯 - 所有包變量在這裏輸出。

4)默認完成操作

我現在面臨的問題是:

在我DWT,我想組件模板的元數據與恆TBB設置包變量進行比較。

我使用的語法是:

<!-- TemplateBeginIf cond="ComponentTemplate.Metadata.section_name = key" --> 

,其中關鍵是在不斷TBB組,具有價值的「測試」

但不知何故,這個包變量「鑰匙」是給的值的包名0而不是測試。

有人可以讓我知道我究竟在哪裏出錯。

+1

嘗試:<! - TemplateBeginIf cond =「ComponentTemplate.Metadata.section_name'=='key」 - > –

+0

您是如何檢查變量值爲0的?在條件前嘗試@@ key @@,看看你得到了什麼,然後與模板構建器中的包變量進行比較。 –

+0

我也試過這個:<! - TemplateBeginIf cond =「ComponentTemplate.Metadata.section_name == key」 - >它似乎沒有工作。 –

回答

2

請檢查以下內容。

  1. 檢查包中是否有多個變量與「密鑰」名稱。
  2. 檢查您是否在包裝中的正確位置進行驗證。

Package Image

+0

Hi Vikas, 1.只有一個名稱爲「Key」的變量。 2.我還驗證了包裝中的位置。這似乎是正確的。 –

+0

這有點奇怪,你是否在c#tbb執行後驗證它,因爲在每次執行tbb之後,包結果可能會改變......否則請嘗試使用任何其他變量名稱... –

+0

@VindaSawant無論如何,它是否適合你? –

6

應指定項目的,你通過更換增加了封裝類型:與

Item item = this._package.CreateStringItem(contentType.Text, "test"); 

Item item = this._package.CreateStringItem(contentType, "test"); 

你也應該確認變量正在通過使用

正確傳遞給DWT
@@[email protected]@ 

以外的條件。這將顯示您正在比較的值。