Ora sto combattendo con l'aggiunta di elementi tramite C# al database Sitecore.Come compilare a livello di programmazione elementi Sitecore (Aggiungi elemento e campi)?
Il codice riportato di seguito viene eseguito correttamente, tuttavia gli articoli non vengono creati.
Inoltre, ho notato che l'elemento ["FieldName"] = valore; la sintassi non compila effettivamente la raccolta Fields.
E la raccolta Campi sull'elemento sembra di sola lettura, quindi non posso semplicemente chiamare .Add su di esso (tale metodo non esiste).
Quindi, qual è il modo corretto di creare un elemento figlio e compilare i relativi campi?
Sto utilizzando il database master sia per il backend Sitecore che per questo codice.
Il codice che uso qui di seguito:
using (new Sitecore.SecurityModel.SecurityDisabler())
{
Database db = Factory.GetDatabase(this.Database);
foreach (var vacancy in Articles.Tables[0].Rows)
{
var rootItem = db.GetItem(this.RootItem);
DataRow dr = (DataRow) vacancy;
var newItem = rootItem.Add(string.Format("{0} {1}", dr["numericID"], dr["job_name"]),
db.GetTemplate(new ID("{GUID}")));
newItem.Editing.BeginEdit();
newItem["Job Title"] = dr["job_name"].ToString();//
newItem.Editing.EndEdit();
}
}
Maggiori informazioni: newItem.Template.Fields restituisce un insieme con 100 campi
newItem.Fields restituisce un FieldCollection con solo 9 elementi in esso.
Quando passo il codice newItem ["campo"]. Valore = valore; non incrementa il conteggio delle raccolte newItem.Fields.
Ovviamente il tasto "campo" è coerente con quelli presenti in newItem.Template.Fields [x] .Name.
2) Sì, questo ha aiutato a pre-compilare la raccolta Fields, ti farò sapere come vado d'accordo. –
3) Non li ho visti nell'editor dei contenuti Sitecore quando si utilizza il database master. –
4) Sì ......... –