こんにちは、Sitecore の初心者です。Sitecore_web データベース内のテーブルからドロップダウン リストに入力したいので、Sitecore API を介して Sitecore Web データベースから任意のテーブル値にアクセスする方法を知りたいです。Sitecore クエリを使用して Sitecore_Web データベースからデータにアクセスするにはどうすればよいですか?
4 に答える
Sitecore のデフォルトでは、Sitecore API を使用して埋められたオブジェクト以外の実際のデータベース オブジェクトを操作することはありません。Sitecore API は、Sitecore バックエンドからのデータを提供します。データソースとしてアイテムのリストをドロップダウンに入力したい場合は、次のようにしてみてください。
var items = Sitecore.Context.Item.GetChildren().toList(); yourdropdown.Datasource = アイテム; yourdropdown.Databind();
明らかに Datatext と Datevalue キーを正しく設定しますが、それは標準の .Net です。Sitecore では、データベースからデータを直接取得して Sitecore API を使用しないでください。
Sitecore クライマーが述べたように、Sitecore データベースに直接アクセスすることはありません。これは Sitecore によってサポートされているものではありません。通常、次の手順を使用して、Sitecore API を介してこれを実現します。
- ドロップダウン アイテムを表す子アイテムを含む Sitecore ツリーからノードを取得する
- 子アイテムを取得する
- ドロップダウンリストを子アイテムのリストにデータバインドします
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
。