如何使用Sitecore API访问Sitecore\u Web数据库表
嗨,我是Sitecore的新手。我想知道如何通过Sitecore API从Sitecore Web数据库访问任何表值,因为我想从Sitecore\u Web数据库中的表填充dropdownlist。我们如何使用Sitecore查询从Sitecore\u Web数据库访问数据如何使用Sitecore API访问Sitecore\u Web数据库表,sitecore,sitecore7,Sitecore,Sitecore7,嗨,我是Sitecore的新手。我想知道如何通过Sitecore API从Sitecore Web数据库访问任何表值,因为我想从Sitecore\u Web数据库中的表填充dropdownlist。我们如何使用Sitecore查询从Sitecore\u Web数据库访问数据 我不建议您直接访问Sitecore_Web数据库。您到底想做什么? Sitecore Api有很多类和方法用于访问Sitecore项目,但您不能直接访问数据库。 也许这对你有帮助 您需要创建一些项目来填充下拉列表 项目是数据
我不建议您直接访问Sitecore_Web数据库。您到底想做什么? Sitecore Api有很多类和方法用于访问Sitecore项目,但您不能直接访问数据库。 也许这对你有帮助 您需要创建一些项目来填充下拉列表 项目是数据库中的记录。项目是Sitecore站点的基本构建块。项目可以表示任何类型的信息,例如内容、媒体文件、布局等 项目始终具有唯一标识数据库中项目的名称和ID。项目具有定义项目包含哪些字段的模板。一个项目代表一个单一版本的内容是一种单一的语言。 可以使用项从数据库检索项 一个项可以有多个子项或子项。可以通过Children属性访问这些子项。在返回结果项之前,将检查其安全性和工作流。因此,虽然项目可能有子项目,但当前用户可能会被拒绝访问这些子项目。Parent属性定义此项的单个父项。 一个项目代表内容的一个单一语言的单一版本。项目的语言可以从language属性获得,而版本可以从version属性获得 在更改名称或任何字段值之前,项目必须处于编辑状态。如果不是,则引发异常。要进入编辑状态,请使用BeginEdit方法;要结束编辑状态,请使用EndEdit方法。EditContext类可用作BeginEdit/EndEdit的快捷方式
我从Sitecore Api文档中了解到这一点正如Sitecore攀登者所说,您不会直接访问Sitecore数据库-这不是Sitecore支持的内容。通常,您可以通过Sitecore API通过以下步骤实现这一点:
<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();
}
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
var item=Sitecore.Context.Database.GetItem(“/Sitecore/content/SiteData/stufforedropdownlist”);
如果(项!=null)
{
exampleDropDown.DataTextField=“Text”;
exampleDropDown.DataValueField=“Value”;
exampleDropDown.DataSource=来自item.Children.AsEnumerable()中的i
选择新的
{
Text=i[“Text”],
Value=i.ID.ToString()
};
例如dropdown.DataBind();
}
}
}
本例假设您在
/sitecore/content/SiteData/stufforedropdownlist
中有一个项目,其中包含一些子项目,每个子项目都有一个名为Text
的字段。默认情况下,在sitecore中,您将永远不会使用真实的数据库对象,而不会使用sitecore API填充对象。Sitecore API将为您提供Sitecore后端的数据。
如果您想将项目列表作为数据源填充到下拉列表中,请尝试以下操作:
<asp:DropDownList ID="exampleDropDown" runat="server"/>
var items=Sitecore.Context.Item.GetChildren().toList();
yourdropdown.Datasource=items;
yourdropdown.Databind()
显然,正确设置了Datatext和Datevalue键,但这是标准的.Net。
在Sitecore中,切勿直接从数据库中获取数据并使用Sitecore API。请使用内置服务访问Sitecore项目。它提供了在Get Item方法中选择数据库的选项 您可以使用以下URL访问sitecore服务:
{Your Site}/sitecore/shell/webservice/service.asmx假设,我在sitecore的网页上有一个下拉列表,下拉列表中的数据需要来自数据库表。那个么,如何使用sitecore将数据填充到下拉列表中?定义数据库表?这是您自己的自定义数据库吗(即与Sitecore无关)?定义“使用sitecore将数据填充到下拉列表中”?您的意思是进入Sitecore管理界面,以便在内容编辑器中可以选择它吗?什么表?这是定制的桌子吗?我认为您应该阅读@Sitecore-climper所述的Sitecore API。这里还有一些关于查询Sitecore的文档:好的,很清楚。但我的问题是,我有一个包含不同列的excel工作表,我必须使用excel工作表列数据来填充dropdownlist。在Sitecore内容编辑器中,是否有任何方法从excel工作表中导入我们想要的列,并将其作为项目插入Sitecore Home中,以便我们可以从指定路径获取这些项目,并按需要填写droddown上面提到过,Sitecore内容编辑器中没有内置用于导入数据的内容,但这可以通过一些自定义C#代码来完成。这个答案是一个有用的起点:Ok填充下拉列表对我来说很清楚。现在,我必须在所有下拉值的基础上实现搜索功能。我将如何在sitecore 7中进行搜索?我认为这可能值得提出一个新问题