-3

嗨,我是 Sitecore 的新手。我想知道如何通过 Sitecore API 访问 Sitecore Web 数据库中的任何表值,因为我想从 sitecore_web 数据库中的表中填充下拉列表。我们如何使用 Sitecore 查询来访问 Sitecore_Web 数据库中的数据?

4

4 回答 4

3

我不建议您直接访问 Sitecore_Web 数据库。您到底想做什么?Sitecore Api 有很多用于访问站点核心项目的类和方法,但您不能直接访问数据库。也许这个链接会帮助你。

您需要创建一些项目来填充您的下拉列表。

项目是数据库中的一条记录。项目是 Sitecore 站点的基本构建块。一个项目可以表示任何类型的信息,例如一段内容、一个媒体文件、一个布局等。

项目始终具有唯一标识数据库中项目的名称和 ID。项目具有定义项目包含哪些字段的模板。表示单个版本内容的项目是一种语言。可以使用 Items 从数据库中检索项目。

一个项目可能有许多子项目或子项目。这些子项可以通过 Children 属性访问。生成的项目在退回之前会检查安全性和工作流程。因此,虽然一个项目可能有子项目,但当前用户可能会被拒绝访问它们。Parent 属性定义此项的单个父项。一个项目代表一段内容的单一语言的单一版本。项目的语言可以从 Language 属性中获得,而版本可以从 Version 属性中获得。

在更改名称或任何字段值之前,该项目必须处于编辑状态。如果不是,则会引发异常。要进入编辑状态,请使用 BeginEdit 方法,要结束它,请使用 EndEdit 方法。EditContext 类可用作 BeginEdit/EndEdit 的快捷方式。

我从 Sitecore Api 文档中得到这个

于 2013-10-29T07:14:36.480 回答
0

正如 sitecore 登山者所说,您不会直接访问 Sitecore 数据库 - 这不是 Sitecore 支持的东西。通常,您可以使用以下步骤通过 Sitecore API 实现此目的:

  1. 从 Sitecore 树中检索一个节点,其中包含代表您的下拉项目的子项目
  2. 检索子项
  3. 将您的下拉列表数据绑定到子项列表

在 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

于 2013-10-29T14:26:14.567 回答
0

请使用内置服务访问 sitecore 项目。它提供了在 Get Item 方法中选择数据库的选项。

您可以使用以下 URL 访问 sitecore 服务:

{您的站点}/sitecore/shell/webservice/service.asmx

于 2013-10-30T18:24:28.750 回答
0

在 Sitecore 中,您将永远不会使用真正的数据库对象,而不是使用 Sitecore API 填充的对象。Sitecore API 将为您提供来自您的 Sitecore 后端的数据。如果您想用项目列表作为数据源填充下拉列表,请尝试以下操作:

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

显然正确设置了 Datatext 和 Datevalue 键,但这是标准的.Net。在 Sitecore 中,切勿直接从数据库中获取数据并使用 Sitecore API。

于 2013-10-30T09:42:24.750 回答