2011-05-10 60 views
1

我的問題是基本相同@Bob黑色的Cannot access sitecore item field via API但我@ techphoria414是接受的解決方案是沒有必要的,在我的情況不工作達成一致。不能編程訪問一個新的領域上的模板在Sitecore的

在我自己的話,我有一個模板Departure,我已經使用了一年左右,現在編程方式創建和更新項目。我在模板中添加了一個新字段Ship。當我創建一個新項目時,當我嘗試使用departure.Fields["Ship"]訪問它時,該字段爲空。如果我跨過導致異常的線路,然後在撥打departure.Editing.EndEdit()後,我可以看到Ship字段,如果我撥打departure.Fields.ToList()。如果我通過Sitecore GUI將模板添加到內容項目中,我可以看到該字段並使用它,如果我查看基於模板的內容項,我也可以看到新的字段。所以只有當我以編程方式訪問模板/項目時它是空的。

我有Sitecore的與當地的SQLSERVER我的本地機器上運行,併發布到我的本地機器。

這裏是我的代碼

String ship = "MSDisaster"; 

foreach (Language language in SiteLanguages) 
{ 
    departure = departure.Database.GetItem(departure.ID, language); 
    departure.Editing.BeginEdit(); 

    try 
    { 
     departure.Fields["StartDate"].Value = GetSitecoreDateString(xDep, "StartDate"); 
     departure.Fields["EndDate"].Value = GetSitecoreDateString(xDep, "EndDate"); 
     departure.Fields["Guaranteed"].Value = xDep.SelectSingleNode("./Guaranteed").InnerText; 
     departure.Fields["Status"].Value = xDep.SelectSingleNode("./Status").InnerText; 
     departure.Fields["Currency"].Value = ConvertLanguageToCurrency(language); 
     departure.Fields["Market"].Value = ConvertLanguageToMarket(language); 
     departure.Fields["TwinSharePrice"].Value = GetPrice(xDep, "twn", language); 
     departure.Fields["SinglePrice"].Value = GetPrice(xDep, "sgl", language); 

     if (!String.IsNullOrEmpty(ship)) 
      departures.Fields["Ship"].Value = ship; 
    } 
    catch (Exception ex) 
    { 
     departure.Editing.CancelEdit(); 
     log.Error(ex); 
     throw ex; 
    } 
    departure.Editing.EndEdit(); 
} 

所以,我怎麼領域有所回升?

謝謝,

詹姆斯。

回答

0

對不起Chris,StackOverflow和其他誰看了我的問題。這是一個愚蠢的錯字。它甚至有我的問題

departure.Fields["SinglePrice"].Value = GetPrice(xDep, "sgl", language); 

    if (!String.IsNullOrEmpty(ship)) 
     departures.Fields["Ship"].Value = ship; 
} 

departure是我工作的項目,departures是它屬於... DOH集合。

那麼,什麼是協議嗎?我現在是否刪除了我的問題,因爲它不會幫助任何人更好地編寫代碼?

James。

2

首先你看到在Sitecore的管理網絡數據庫中的字段。 如果你做的項目有字段,然後你應該檢查項目上分配的模板,並仔細檢查該字段實際上被稱爲「發貨」,並檢查案例爲先前看到這是一個問題。

還要檢查項目和領域的安全,以防萬一有人改變任何東西。 接下來嘗試從項目獲取數據,但不使用字段名稱,而使用字段ID。

讓我知道你是怎麼回事?

Chris

相關問題