2013-03-09 3 views
7

저는 검도 ASP.NET MVC 래퍼를 사용하고 있습니다. 래퍼가 스크립트를 렌더링하여 컨트롤 마크 업 직후에 컨트롤을 초기화하는 것으로 나타났습니다. 스크립트를 맨 아래에 렌더링하도록 구성 할 수 있습니까? 이전에 Telerik ASP.NET MVC 컨트롤을 사용하여 스크립트 관리자가 모든 초기화를 맨 아래에 렌더링하도록 할 수있었습니다. 그게 가능하니?제어 검도 (Kendo) 스크립트 위치 MVC에서 렌더링

답변

11

2013 년 1 분기 릴리스에는 지연된 스크립트에 대한 지원이 추가되었습니다. 당신과 같이 사용할 수 있습니다 :

@(Html.Kendo().AutoCompleteFor(m => m) 
    .Filter(FilterType.Contains) 
    .MinLength(2) 
    .DataSource(config => 
     { 
      config.Read(action, controller, routeValues); 
      config.ServerFiltering(true); 
     }).Deferred()) 

주 체인의 마지막에 Deferred() 방법. 그런 다음 레이아웃에 어디서나 마크 업에 다음을 추가합니다

<!-- ... --> 
    @Html.Kendo().DeferredScripts() 
    </body> 
</html> 

자세한 내용은 http://www.kendoui.com/forums/mvc/general-discussions/kendo-initialization-scripts-in-body-interfere-with-other-libraries.aspx를 참조하십시오.

+0

이것은 검도 UI +1 형제에게 정말 놀라운 부가 기능입니다! –

2

죄송합니다. 이것은 불가능하며 해결되지 않았습니다. MVC 용 Kendo Wrappers의 스크립트는 항상 위젯의 html 래퍼 뒤에 렌더링됩니다.

documentation에 언급되어 있습니다.

편집 : 나중에 jrummell을 익숙하게하는 연기 된 스크립트로 가능합니다.

2

이것은 약간의 두통이 될 것이지만 래퍼가 jQuery 스크립트를 생성하기 때문에 부분보기에서 래퍼를 생성 할 수 없기 때문에 결과 스크립트를 가져 와서 페이지 하단의 스크립트 태그에 삽입하십시오. 물론, 코드를 복제하거나 코드를 재사용 가능한 방식으로 생성하는 데 상당한 양의 코드가 필요하므로 모든 스크립트가 중간 대신 페이지의 맨 아래에 표시됩니다.

성능 향상에 도움이된다고 가정합니다. 일반적으로 CSS를 상단에, 스크립트를 하단에 배치하는 것이 좋습니다.

+0

예, 성능 향상에 도움이됩니다. 좋은 생각. 출력에 따라 waaaaaayyy messy를 얻을 수는 있지만 좋은 생각입니다. +1 –

관련 문제