Personalizzazione di smallsearchinputbox Testo predefinito
-
09-12-2019 - |
Domanda
Sto cercando di personalizzare il testo visualizzato nella casella di ricerca del mio sito di SharePoint.L'impostazione predefinita è "Cerca questo sito ...".
Ho trovato una serie di articoli che spiegano come farlo (sovrascrivendo il controllo delegato con un numero di sequenza inferiore) e funziona bene.
Il mio XML è simile a questo:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Control
Id="SmallSearchInputBox"
Sequence="10"
ControlClass="Microsoft.SharePoint.Portal.WebControls.SearchBoxEx" ControlAssembly="Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
<Property Name="GoImageUrl">/_layouts/images/gosearch15.png</Property>
<Property Name="GoImageUrlRTL">/_layouts/images/gosearchrtl15.png</Property>
<Property Name="GoImageActiveUrl">/_layouts/images/gosearchhover15.png</Property>
<Property Name="GoImageActiveUrlRTL">/_layouts/images/gosearchrtlhover15.png</Property>
<Property Name="DropDownMode">ShowDD</Property>
<Property Name="SearchResultPageURL">/_layouts/osssearchresults.aspx</Property>
<Property Name="ScopeDisplayGroupName"></Property>
<Property Name="FrameType">None</Property>
<Property Name="QueryPromptString">DO A SEARCH!</Property>
</Control>
</Elements>
.
funziona bene, la casella di ricerca visualizza "Fai una ricerca!"come previsto.Tuttavia, voglio questa stringa localizzata.Quando faccio
<Property Name="QueryPromptString">$Resources:MyResourceFile,CustomText;</Property>
.
La casella di ricerca visualizza $ risorse: myresourcefile, personalizzato;itteralmente invece di valutarlo.
Come posso mettere le stringhe localizzate lì?
Grazie!
Soluzione
La linea <Property Name="QueryPromptString">$Resources:MyResourceFile,ResourceKey</Property>
Wokrs Fine per me.
Penso che dovresti controllare il tuo file delle risorse.Questo file dovrebbe contenere risorseKey che tenta di utilizzare in questa proprietà.
Se si utilizza il file e il tasto risorse corretti, il controllo di ricerca visualizza il testo dipende dalla lingua del sito.Se desideri cambiare questo testo dinamicamente come vedi nella figura qui sotto, dovresti fare qualche passo più complesso.
Passaggi:
- .
- Crea la tua classe personalizzata e l'eredita da searchboxex
- Crea una nuova proprietà di queryprptstring
- Definisci il controllo sicuro
- Crea controllo delegato
Codice per i passaggi:
.public class SearchBox : SearchBoxEx { [Browsable(false)] public new string QueryPromptString { get { return base.QueryPromptString; } set { string fullKey = string.Format("$Resources:{0}", value); base.QueryPromptString = SPUtility.GetLocalizedString(fullKey, null, (uint)Thread.CurrentThread.CurrentUICulture.LCID); } } } <Control Id="SmallSearchInputBox" Sequence="10" ControlClass="LocalizedSearch.SearchBox" ControlAssembly="LocalizedSearch, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71df3f77c17b7c69"> <Property Name="GoImageUrl">/_layouts/images/gosearch15.png</Property> <Property Name="GoImageUrlRTL">/_layouts/images/gosearchrtl15.png</Property> <Property Name="GoImageActiveUrl">/_layouts/images/gosearchhover15.png</Property> <Property Name="GoImageActiveUrlRTL">/_layouts/images/gosearchrtlhover15.png</Property> <Property Name="DropDownMode">ShowDD</Property> <Property Name="SearchResultPageURL">/_layouts/osssearchresults.aspx</Property> <Property Name="ScopeDisplayGroupName"></Property> <Property Name="FrameType">None</Property> <Property Name="QueryPromptString">filename,key</Property> </Control>