2016-07-20 3 views
1

私は検索ボックスのWebパーツを複製して変更することができます。私はプレースホルダ属性にローカライズ文字列を追加しようとしています。Kentico 9 cms:cmsTextBoxプレースホルダローカライゼーション

これが機能していません。

<cms:CMSTextBox ID="txtWord" runat="server" EnableViewState="false" MaxLength="1000" 
    ProcessMacroSecurity="false" placeholder="<%= CMS.Helpers.ResHelper.GetString("kff.Search--PlaceHolderCopy")%>" /> 

もこれを行います:

<cms:CMSTextBox ID="txtWord" runat="server" EnableViewState="false" MaxLength="1000" 
    ProcessMacroSecurity="false" placeholder='<%= CMS.Helpers.ResHelper.GetString("kff.Search--PlaceHolderCopy")%>' /> 

私は仕事をするJSスニペットを持っている、しかし、私はJSファイルにコピーを避けるために願っています。

var $searchField = $('.searchTextbox'); 
 

 
    if ($('body').hasClass('ENCA')) { 
 
    // search field placeholder copy  
 
    $searchField.attr('placeholder', 'Search For Stuff'); 
 
    } 
 
    else { 
 
    $searchField.attr('placeholder', 'Recherche'); 
 
    }

私は、サーバーのタグにローカライズ文字列を追加することができ、またはそれは背後にあるコードで行う必要があります。私はこれのためにコードの最善の位置がわからない、いずれか私はPage_Loadブロックを見ることができません。

答えて

1

あなたは分離コードでSetupControl方法で、次の行を追加することができます:あなたは本当にサーバー側のコントロールのプロパティを設定する<%=構文を使用することはできません

txtWord.Attributes.Add("placeholder", ResHelper.GetString("kff.Search--PlaceHolderCopy")); 

また、CMSTextBoxコントロールには、WatermarkTextというプロパティがあります。これは、探しているものかもしれません。これは、AjaxControlToolkitライブラリのTextBoxWatermarkExtenderコントロールを使用します。

+0

パーフェクト!ありがとう!これが基本コントロールに追加されていればいいでしょう。 –

0

webpartを複製し、この単純なもののために重複したコードを持つ必要はありません。そのウェブパーツに異なるwebpart layoutを作成し、パネルの上に次のコードを追加してください:

<script runat="server"> 
    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     txtWord.Attributes.Add("placeholder", ResHelper.GetString("yourstring")); 
    } 
</script> 
+0

私は同意しますが、私は他の小さな変更があります。 CMSButtonと画像ボタンの表示を非表示に設定しました。 DIVを追加したので、FontAwesomeを検索アイコンとして使用することができました。 修正プログラムのために何かを危険にさらしたいと思わなかった。 –

+0

'code'

\t Search \t

+0

カスタムWebパーツのレイアウトに問題はありません。 –

関連する問題