ich auf der benutzerdefinierten Tabelle, die die Feldvalidierung mache. Diese ist das Makro auf dem Validierungsfeld:Kentico 9 - Datencache Makro
{%
\t foreach (i IN CMSContext.Current.GlobalObjects.CustomTables["customtable"].Items.ItemsAsFields.IdNumber)
\t {
\t \t \t if (i == IdNumber.Value){
\t \t \t \t return false;
\t \t \t }
\t }
\t \t return true;
\t #%}
Die Ausgabe von diesem Teil des Makros starten. CMSContext.Current.GlobalObjects.CustomTables [ "Custom"] Artikel. ItemsAsFields.IdNumber
Diese Zeile von Makro sollte alle Daten erhalten, die in meinem customtable eingegeben werden, jedoch hat es nicht die letzten bekommen. In diesem Fall funktioniert meine Validierung nicht und ich werde weiterhin die gleiche IdNummer eingeben.
Dies ist die Art und Weise, wie ich herausgefunden habe, als ich dieses Makro über System lief - Macro - Benchmark:. {% CMSContext.Current.CMSContext.Current.CMSContext.Current.GlobalObjects.CustomTables [ "Custom"] Artikel .ItemsAsFields.ItemID #%}
Ich testete "Clear Cache", das funktionierte. Also scheint mir das Problem zu kippen.
Server Content Caching
Server Datei-Caching
Client-Caching
Output-Caching: - System - Leistungs
So alle Cache in Einstellung ausgeschaltet Ich habe
und diese Makrozeile gibt die neuesten Daten nicht zurück, wenn ich neue Daten eingegeben habe.
Gibt es eine Möglichkeit Cache mit Makros oder andere Option zu deaktivieren, dieses Problem zu lösen?
Dank Rocky. Es verwendet CMS-Mechanismus, um die Daten zu speichern, das ist, was ich mir vorstellen kann, schien nicht SQL-Abfrage zu verwenden. Wenn ich ClearHashTables manuell verwenden möchte, gibt es ein Beispiel, wie ich es auf das Makro anwenden kann? – YRuth
Sie müssten [eine benutzerdefinierte Makro-Methode registrieren] (https://docs.kentico.com/k10/macro-expressions/extending-the-macro-engine/registering-custom-macro-methods). Wie auch immer, da Sie Kentico's API benutzen, scheint es wie ein Fehler zu sein und es ist sehr wahrscheinlich, dass es durch den 9.0.46 Hotfix behoben wurde. – rocky