2013-10-29 46 views
-3

您好我是Sitecore的新成員。我想知道如何通過Sitecore API訪問Sitecore Web數據庫中的任何表值,因爲我想從sitecore_web數據庫內的表中填充下拉列表。我們如何使用Sitecore查詢從Sitecore_Web數據庫訪問數據?如何使用Sitecore API訪問Sitecore_Web數據庫表

+1

什麼表?它是一個自定義表嗎?我認爲你應該閱讀Sitecore API,就像@sitecore登山者說的那樣。以下是一些關於查詢Sitecore的文檔:http://sdn.sitecore.net/upload/sdn5/developer/using%20sitecore%20fast%20query/using%20sitecore%20fast%20query001.pdf –

回答

3

我不建議你直接訪問Sitecore_Web數據庫。你想要做什麼? Sitecore Api有許多類,用於訪問sitecore項目的方法,但不直接訪問數據庫。 也許這個link會幫助你。

您需要創建一些項目來填充您的下拉列表。

項目是數據庫中的記錄。項目是Sitecore站點的基本構建塊。項目可以代表任何類型的信息,例如一段內容,一個媒體文件,一個佈局等。

項目總是有一個名稱和和ID唯一標識數據庫中的項目。項目有一個模板,用於定義項目包含的字段。一個項目表示單個版本的內容是單一語言。 使用Items可以從數據庫檢索項目。

一個項目可能有多個子項目或子項目。這些子項可以通過Children屬性進行訪問。在返回之前檢查結果項目的安全性和工作流程。因此,雖然項目可能有子項目,但當前用戶可能會被拒絕訪問它們。 Parent屬性定義此項目的單個父項目。 一個項目表示單個內容的單一語言版本。該項目的語言可以從Language屬性獲得,而版本可以從Version屬性獲得。

該項目必須處於編輯狀態,才能更改名稱或任何字段值。如果不是,則引發異常。要進入編輯狀態,使用BeginEdit方法並結束它,使用EndEdit方法。 EditContext類可以用作BeginEdit/EndEdit的快捷方式。

我得到這個從Sitecore的API文檔

+0

假設我有一個下拉菜單在Sitecore的網頁上,下拉菜單中的數據需要來自數據庫表。那麼如何使用sitecore將數據填充到下拉菜單中? – Puneet

+0

定義數據庫表?這是您自己的自定義數據庫(即非Sitecore相關)?使用sitecore定義「填充數據到下拉列表」?你的意思是進入Sitecore管理界面,因此可以選擇內容編輯器嗎? – jammykam

0

作爲Sitecore的登山者說,你就不會直接訪問數據庫Sitecore的 - 這是不是這是由Sitecore的支持。

  1. 檢索包含代表你的下拉菜單項子項中的Sitecore的樹中的節點
  2. 檢索子項
  3. 數據綁定您的下拉列表:通常你會通過Sitecore的API使用以下步驟實現這一目標子項

在ASCX的列表,你可以有這樣的事情:

<asp:DropDownList ID="exampleDropDown" runat="server"/> 

,並在後臺代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     var item = Sitecore.Context.Database.GetItem("/sitecore/content/SiteData/StuffForADropDownList"); 
     if (item != null) 
     { 
      exampleDropDown.DataTextField = "Text"; 
      exampleDropDown.DataValueField = "Value"; 
      exampleDropDown.DataSource = from i in item.Children.AsEnumerable<Sitecore.Data.Items.Item>() 
        select new 
        { 
         Text = i["Text"], 
         Value = i.ID.ToString() 
        }; 
      exampleDropDown.DataBind(); 
     } 
    } 
} 

這個例子假設你/sitecore/content/SiteData/StuffForADropDownList一些子項有一個項目,每個有一個名爲Text場。

+0

好的,很明顯。但我的問題是我有一個不同的列在其中的Excel工作表,我必須使用Excel工作表列數據來填充dropdownlist.Is有任何方式在Sitecore內容編輯器從Excel表導入我們想要的列並將它們作爲項目插入Sitecore Home,以便我們可以從指定的路徑獲取這些項目並按照上面提到的方式填入droddown。 – Puneet

+0

Sitecore內容編輯器沒有內置任何用於導入數據的內容,但可以使用一些自定義C#代碼完成此操作。這個答案是一個有用的起點:http://stackoverflow.com/questions/9989971/sitecore-how-to-import-content#9990913 –

+0

好填充下拉對我來說很清楚。現在我必須在所有下拉值的基礎上實現搜索功能。我將如何在sitecore 7中進行搜索? – Puneet

0

在Sitecore中的默認設置,您將永遠不會使用使用Sitecore API填充的實體數據庫對象。 Sitecore API將爲您提供來自Sitecore後端的數據。 如果你想填充一個下拉列表的項目作爲數據源嘗試這樣的事情:

var items = Sitecore.Context.Item.GetChildren()。toList(); yourdropdown.Datasource =項目; yourdropdown.Databind();

顯然正確設置您的Datatext和Datevalue鍵,但這是標準的.Net。 在Sitecore中,絕對不要直接從數據庫中獲取數據並使用Sitecore API。

0

請使用內置的服務訪問sitecore項目。它提供了在Get Item方法中選擇數據庫的選項。

你可以用下面的URL訪問Sitecore的服務:

{你網站} /sitecore/shell/webservice/service.asmx