2016-04-13 7 views
0

Ich entwickle eine benutzerdefinierte Volltextsuche auf einer xpage. Ich habe ein Bearbeitungsfeld, in dem der Benutzer seine Suchkriterien eingibt, und eine Suchschaltfläche, die eine benutzerdefinierte Suchzeichenfolge erstellt und sie einer viewScope-Variablen zuweist, die dann von der Sucheigenschaft eines Ansichtsbereichs aufgenommen wird. Dies funktioniert gut, wenn sich das Bearbeitungsfeld und die Suchschaltfläche direkt auf der x-Seite befinden.Wert kann nicht aus einem Bearbeitungsfeld in einem Registerkartenfenster auf einer xpage gelesen werden

Das Problem ist, dass das Bearbeitungsfeld und die Suchschaltfläche auf einer der Registerkarten eines Registerkartenfelds platziert werden müssen. Wenn ich sie auf dem Tabbed Panel platziere, kann ich Werte aus dem Bearbeitungsfeld nicht lesen, und ich kann nicht sehen warum!

Der Code auf der Suchtaste den Wert aus dem Eingabefeld zu lesen ist:

var component = getComponent('searchString'); 
var searchCriteria = component.getValue(); 

component ein Objekt enthält (I mit _dump(component) geprüft), aber searchCriteria ist immer null, wenn das Eingabefeld und Button ist in das Registerkartenfeld.

Alle Vorschläge, warum dies ist, würde dankbar erhalten.

+0

Versuchen getSubmittedValue(), aber noch besser: fahren Sie geradeaus auf die Datenquelle von searchCriteria –

+0

noch besser, um diese xsnippets zu verwenden, müssen Sie sich keine Gedanken darüber machen, wann Sie welche Methode verwenden müssen, um den Wert https://openntf.org/XSnippets.nsf/snippet.xsp?id=getcomponentvalue zu erhalten –

+0

@PerHenrikLausten - Ich habe 'getSubmittedVal versucht Aber das ist auch Null, wenn das Feld im Registerkartenfeld ist. Was meinst du damit, direkt zur Datenquelle von searchCriteria zu gehen? (Entschuldige meine Unwissenheit - obwohl ich Notes seit fast 20 Jahren verwende, habe ich nicht viel mit xpages gemacht!) Danke, dass du dir die Zeit nimmst, um zu antworten. –

Antwort

1

Versuchen Sie, die Eingabe von Text in eine viewScope variable Bindung:

<xp:inputText id="tururu" value="#{viewScope.searchText}" /> 

Dann können Sie den Wert zugreifen ssjs ist nur mit:

var searchCriteria = viewScope.searchText;