1. フィールドとの作業

アクセスフィールド値

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このセクションで説明するAPIを使ってフィールド値の読み書きが可能です。メディアアイテムのバイナリデータを保存するためのAttachment Systemフィールドタイプを除きます。Sitecoreすべてのフィールド値をテキストとして保存します。任意のフィールドに単純なテキスト値としてアクセスすることも、Sitecore.Data.Fields名前空間内の特殊クラスを利用できます。

一部のフィールドタイプは単純なテキスト値で構成されています。チェックボックスフィールドは選択時に1文字(「1」)を格納します。リッチテキストエディタ(RTE)のフィールドにはXHTMLが含まれています。多数のフィールドタイプは単一のアイテムのIDや複数のIDをパイプ文字(「|」)で区切っています。他のフィールドタイプはXMLや独自の形式のデータが含まれています。

!ヒント任意のフィールドタイプの文字列形式を決定するには、コンテンツエディターを開き、そのフィールドを含むアイテムを選択し、生のフィールド値を表示します。

Sitecore.Data.Items.Itemクラスが公開したコレクションを使って、任意のフィールドの文字列値にアクセスできます。例えば、Masterデータベースの*/Sitecore/Content/Home*項目のTitleフィールドの値にアクセスするには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

string title = home"title";

!重要指定されたフィールドが存在しない場合、Sitecore.Data.Items.Itemで公開されたコレクションは空文字列を返しますが、Nullは返されません。

Sitecore.Data.Items.Itemクラスで公開されたコレクションを使って、任意のフィールドの値を更新できます。例えば、Masterデータベースの/Sitecore/Content/Home項目のTitleフィールドの値を更新するには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

home.Editing.BeginEdit();

home"title" = "//TODO: replace with appropriate value";

home.Editing.EndEdit();

Sitecore.Data.Items.Itemクラスで公開されたコレクションを使って、その値を空文字列に設定することで任意のフィールドを消去できます。例えば、Masterデータベースの*/Sitecore/Content/Home項目のTitle*フィールドを消すには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

home.Editing.BeginEdit();

home"title" = String.Empty;

home.Editing.EndEdit();

!重要フィールドの値をクリアしても、そのフィールドは標準値にリセットされません。フィールドを標準値にリセットする手順については、「 フィールドを標準値にリセットする方法」のセクションを参照してください。フィールド値をNullに設定することはできません。

あるいは、Sitecore.Data.Items.Item.Fieldsプロパティを使ってSitecore.Data.Fields.Fieldクラスのインスタンスとして任意のフィールドにアクセスすることもできます。例えば、Masterデータベースの*/Sitecore/Content/Home項目のTitle*フィールドにアクセスするには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.Field titleField = home.Fields"title";

if(titleField!=null)

{

string title = titleField.Value;

}

!重要フィールドの名前(item.FieldsSystem.String)でアクセスし、アイテムに存在しない場合、Sitecore.Data.Items.Item.FieldsコレクションはNullを返します。

ID(item.FieldsSitecore.Data.ID)でフィールドにアクセスしてアイテムに存在しない場合、Sitecore.Data.Items.Item.Fieldsコレクションはアイテムテンプレートに属さない「新しい」 Sitecore.Data.Fields.Fieldオブジェクトを返します。

Sitecore.Data.Fields.Field.Valueプロパティを使ってフィールドの値を更新できます。例えば、Masterデータベースの*/Sitecore/Content/Home項目のTitle*フィールドの値を更新するには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.Field titleField = home.Fields"title";

if(titleField!=null)

{ home.Editing.BeginEdit(); titleField.Value = "New Value"; home.Editing.EndEdit(); }

Sitecore必要な場合にのみデータを取得します。Sitecoreがアイテムのすべてのフィールド値を取得できるようにするために、Sitecore.Data.Items.Item.ReadAllメソッドを呼び出します。例えば、コンテキストアイテムのフィールドを反復する際:

Sitecore.Data.Items.Item item = Sitecore.Context.Item;

item.Fields.ReadAll();

foreach (Sitecore.Data.Fields.Field field in item.Fields) { // Process field }

この記事を改善するための提案がある場合は、 お知らせください!