2016-07-20 2 views
1

검색 상자 웹 파트를 복제하여 변경할 수 있습니다. placeholder 속성에 지역화 문자열을 추가하려고합니다.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 layout을 만들고 패널 위에 다음 코드를 추가하십시오.

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

동의하지만 다른 작은 변경 사항이 있습니다. CMSButton과 이미지 버튼에 대한 가시성을 숨김으로 설정했습니다. 검색 아이콘으로 FontAwesome을 사용할 수 있도록 DIV를 추가했습니다. 핫픽스로 인해 위험을 무릅 쓰고 싶지 않았습니다. –

+0

'code'

\t Search \t

+0

핫픽스 또는 업그레이드로 인해 사용자 정의 웹 파트 레이아웃에 문제가 발생하지 않습니다. –