2014-10-02 1 views
0

다음과 같이 Telerik Grid가 있습니다 (저는 Telerik 컨트롤에 비교적 새로운 MVC 및 새로운 제품입니다). 그리드는 검색 기준 목록에서 업데이트되는 부분 뷰입니다.Telerik Grid에서 새 탭/페이지로 데이터 보내기 버튼을 클릭하십시오.

@(Html.Kendo().Grid((IEnumerable<MyModel>)Model.MyModel) 
    .Name("grid") 
    .DataSource(ds => ds.Ajax() 
     .Model(mod => 
      { 
       mod.Id(m => m.Id); 
       mod.Field(p => p.Name).Editable(false); 
      })) 

    .Columns(columns => 
    { 
     columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' #= IsSelected ? checked='checked':'' # class='chkbx' value='#= Id#' name='SelectedArea' />") 
       .HeaderTemplate("<input type='checkbox' id='masterCheckBox' onclick='checkAll(this)'/>").Width(20); 
     columns.Bound(p => p.Name).Filterable(false).Width(100); 
    }) 
          .Editable(ed => ed.Mode(GridEditMode.InCell)) 
          .Pageable() 
          .Sortable() 
          .Scrollable() 
          .Filterable() 
) 

사용자가 체크 상자 그리드에서 선택 할 수 있어야합니다, 다음 팝업해야한다 그리드에서 선택한 항목에서 생성 된 보고서를 (새 창/새 탭을) 버튼을 클릭합니다 원본 페이지 만 남겨 둡니다.

페이지를 제출하면 선택된 목록이 다시 전송되지만 그리드의 일부 페이지와 선택한 모든 항목이 손실됩니다. 링크를 만들고 새 페이지를 열면 어떤 데이터가 선택되었는지는 알 수 없으므로 버튼/액션에 대한 시도 중 일부는 여기에 나와 있습니다.이 데이터는 내가 찾던 것보다 훨씬 간단하다고 생각하지만 나무를 통해 포리스트를 볼 수는 없습니다. ...

<input type="submit" name="Command" value="Print Call List" formtarget="_blank" /> 
<input type="submit" name="Command" value="Print Call List" onclick="location.href='@Url.Action("CallList", "Reports", new { target="_blank" })'" /> 
@Html.ActionLink("Print Call List", "CallList", "Reports", null, new { target = "_blank" }) 

답변

0

마지막으로 나 자신을 알아 냈어. 나는 여전히 검색 버튼을 클릭하는 것과 같은 양식을 제출하고

을. 내가 확인 다른 버튼을 사용하여 무엇을 요구하는지 (검색 대 인쇄 목록), 검색 중이라면 이전과 동일하게 작업하십시오. 보고서가 요청 된 경우 ShowCallList라는보기 개체에 플래그를 추가했습니다.

 if (Request.IsAjaxRequest()) 
     { 
      if ("Print Call List" == command) 
      { 
       TempData.Add("SelectedArea", searchModel.SelectedArea); 
       searchModel.ShowCallList = true; 
      } 
      searchModel.SearchResults = ExecuteSearch(searchModel); 
      return PartialView("_SearchResults", searchModel); 
     } 

다음 코드를보기에 추가했습니다.

@if (Model.ShowCallList) 
{ 
    @Html.Raw("window.open('") @Url.Action("CallList", "Reports", new { target="_blank" }) @Html.Raw("')"); 
} 

열려있는 창 명령을 인쇄하고 URL에 새 창에서 여는 대상 공백이 있습니다. ID의 필요한 목록을 TempData에 넣어 보고서 페이지로 전달합니다.

따라서 보고서는 검색 페이지가 다시로드 될 때 호출 될 때 TempData에서 필요한 매개 변수를 가져옵니다. 또한 검색 방법을 약간 수정하여 검색 결과 모눈의 확인란을 다시 검사해야 최종 사용자에게 요청 된 보고서로 새 페이지 만 열리는 것으로 나타났습니다.

   IsSelected = searchModel.SelectedArea.Contains(item.ID), 
관련 문제