2011-01-25 3 views
0

나는 두 가지를 보여줍니다 ASP.NET MVC 2를 사용하여 페이지를 만들려고 해요 : 나는 Ajax.BeginForm을 사용했다 수행과의 아래쪽 절반을 업데이트하려고 무엇telerik 그리드와 아약스

1. the upper half of the page should show a form 
2. the lower half should show the results based on the information from the form 

페이지에서 UpdateTargetId를 사용하십시오. 기본적으로이 방법이 효과적이었습니다. 그러나 결과에는 페이지 가능 인 Telerik 표가 포함됩니다. 이것은 문제가 시작되는 곳입니다.

그리드는 주로 잘 보이지만 그리드 페이지를 탐색하려고하면 잘못되기 시작합니다. 일반 (Ajax가 아닌) 그리드는 링크를 사용합니다. 이 격자 변형을 사용하면 링크가 양식의 정보를 포함하지 않는 새 페이지를 요청하므로 오류 스택이 발생하기 때문에 문제가 발생합니다.

Ajax를 켜면 Ajax를 통해 검색된 부분보기에서 작동하지 않기 때문에 (이 경우 스크립트 태그가 작동하지 않음) Ajax가 작동하지 않습니다. 이 경우에는 JSON 결과 객체를 일반 텍스트로 렌더링합니다.

한 페이지에 모두 넣으면 잘 작동합니다. 그러나 어떤 이유로 그리드는 Ajax를 사용하지 않을 것입니다. 인덱스 뷰에 나는 그리드 렌더링하기 위해 다음 코드를 사용

 Html.Telerik().Grid<FoobarListItem>() 
     .Name("Foobar") 
     .DataBinding(dataBinding => dataBinding.Ajax().Select("_Paging", "Foobar")) 
     .ToolBar(commands => commands 
      .Custom() 
      .HtmlAttributes(new { id = "export", onclick = onclickValue }) 
      .Text(Html.Alias("default", "ExportCSV")) 
      .Url("#") 
     ) 
     .Columns(columns => 
     { 
      //Template column which shows an action link 
      columns.Bound(o => o.Datum); 
      columns.Bound(o => o.VerbruikLaag); 
      columns.Bound(o => o.VerbruikNormaal); 
      columns.Bound(o => o.VerbruikPiek); 
     }) 
     .Scrollable(scrolling => scrolling.Height(200).Enabled(false)) 
     .Pageable() 
     .Localizable("nl-NL") 
     .Render(); 
} 

를하지만 나하지 아약스 - 데이터 바인딩을 넣어 여부, 여전히 같은 방법으로 테이블을 렌더링합니다. 누군가 내가 잘못 가고 있는지에 대한 생각을 갖고 있습니까?

답변

0

실제로 필요한 문제는 필요한 javascript 파일을 수동으로 포함해야한다는 것입니다. Telerik의 최신 버전은 Ajax를 통해로드 된 구성 요소에 대해서도 자동으로 발생합니다.

양식을 일반 HTML 양식으로 변환하여 문제를 해결했습니다. 테이블의 데이터가 모델에서 사용 가능한지 여부에 따라 그리드가 같은 페이지에로드됩니다. 페이징은 같은 방식으로 작동합니다.

0

Telerik Grid Client Side Events

은 당신이 달성하려고하는 무엇의 예를 가지고 있습니다. OnRowselect 이벤트입니다. 이 이벤트를 처리하고 모든 그리드 정보에 액세스 한 다음 jquery를 호출하여 뷰의 아래쪽 절반을 다시 볼 수 있습니다.

1

this 도움말 항목을 확인하십시오. Ajax.BeginForm은 기본적으로 ajax 응답으로 반환되는 JavaScript를 실행하지 않으므로 작동 시키려면 jQuery 코드가 필요합니다. 도움말 항목은 필수 코드를 표시합니다. 아마도 이것은 ASP.NET MVC 3에 도입 된 새롭고 눈에 거슬리지 않은 Ajax 프레임 워크에서는 필요하지 않습니다.

+0

나는 그것에 대해 읽었지만, 코드는 나를 위해 작동하지 않습니다. – Pieter