2012-11-14 50 views
0

我正在Sitecore實施,其中有很多表單在整個網站(在你問之前,WFFM是不可能的!)。Sitecore最乾淨的方式來存儲表單字段標籤

我的問題是,什麼是最好的方式來存儲表單標籤?我目前的想法是通過鍵使用字典結構和訪問表單字段標籤。這種方法的問題在於編輯想要改變同一領域的標籤;例如在表單X上,第一個名稱字段是「First Name」,那麼也許在別的地方可能是「Forename」,或者它可能是必填字段(帶星號)在另一個地方是可選的。我真的不想開始有名爲「FirstNameWithAsterisk」和「FirstNameWithoutAsterisk」的字典項目等。

另一個想法是將表單標籤存儲在名稱值列表字段中。然後這個字段可以填入名稱/值,編輯者可以自由使用他們喜歡的任何形式標籤,而不會無意中編輯在其他地方使用的字典條目。

我一直在頁面模板上有表單字段之前的路線,但這是一個非常可怕的解決方案恕我直言,所以我不會有興趣再次走下這條路線。

編輯

爲了確認,也有這個網站的形式數量有限。

回答

1

我會用字典的方法。如果你的觀點可能會有所不同,那麼這是將它們邏輯分開的一個理由。所以,這聽起來像你有自定義的形式和一套有限的表格(請確認)。也就是說,像這樣建立你的字典,例如

  • Form1中
    • Form1中,名字
  • 窗體2
    • 窗體2-姓

或者其他的命名約定是有道理的你。從邏輯上講,它是每個獨特形式的「名字字段」,但它們在技術上是兩個單獨的不相關的東西,因此您需要爲它們設置兩個字典項目。你可以通過你提到的命名約定來做到這一點,但不要根據內容命名它們(因爲這個值會改變!),而是根據它應用於/使用的地方命名它,因爲你的代碼會靜態地請參閱密鑰。

因此,我會說FirstNameWithAsteriskFirstNameWithoutAsterisk是壞名字,因爲它們與內容綁定以及它是否具有星號。相反,請按其適用的格式或內容的其他一般概念對其進行命名。

編輯:由於同一表單組件可以添加到多個頁面,那麼這是一個data source of that presentation component一個完美的案例。只需爲所有表單字段創建一個模板,然後創建任意數量的這些實例以及綁定到頁面的每個表單,使用所需的字段值將其數據源指向相應的項目。

+0

馬克您好,感謝您的回答!這是組織像這樣的字典條目的有效點。我能看到的唯一的缺點就是同樣的形式在兩個不同的地方使用和編輯器要使用不同的標籤爲每個實例。 –

+0

你如何在頁面上添加表單?它是WebControl還是Sublayout,並通過Layout Details應用於兩個單獨的頁面項目?另外,您是否需要在網站上支持多種語言,或者可能在將來支持多種語言? –

+0

這只是它被應用到很多sublayouts用戶控制。不需要多語言支持。 –

0

你知道有一個內置的字典中Sitecore的,對不對?看看系統/詞典。然後通過調用Sitecore.Globalization.Translate.Text()從它獲取值。

如果你肯定不會支持多國語言......那麼你可以想象增選此功能,使詞典項目的不同語言版本實際上是你想要的不同值的字段標籤。

相關問題