2011-12-21 2 views
1

을 사용 : 내가 만들고 싶어ASP.NET MVC 3.0 WebGrid는 아약스가 나는 다음과 같은 문제가 발생하고있어

을 WebGrid "도우미" "A JQuery와 스크립트 참조가 아약스 지원을 활성화하기 위해 필요를"내 WebGrid AJAX가 활성화되었습니다. 나는 부분보기

@ModelType WebGrid 

@Model.GetHtml(tableStyle:="webgrid", headerStyle:="webgrid-header", footerStyle:="webgrid-footer", alternatingRowStyle:="webgrid-alternating-row", selectedRowStyle:="webgrid-selected-row", rowStyle:="webgrid-row-style", 
         columns:=Model.Columns(Model.Column(
              columnName:=GemeentePostColumnsEnum.NISCode.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.GemeenteNaam.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.DistrictNaam.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.PostCode.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.PostNaam.ToString()), 
           Model.Column(
            format:[email protected]@<text>@Ajax.ActionLink("Edit", "AddEdit", New With {.NISCode = item.NISCode}, New AjaxOptions With {.UpdateTargetId = "formGemeentePost", .InsertionMode = InsertionMode.Replace, .HttpMethod = "GET", .OnFailure = "failure"})</text>))) 

이 코드 및 컨트롤러이 코드를 가지고 :

Function SearchForm(searchModel As GemeentePostWebService.GemeentePostCriteria) As PartialViewResult 
      searchModel.Taalcode = "nl" 


      'Code to fill up Model 

       ViewBag.WebGrid = CreateGrid(viewModelList) 
       Return PartialView("Partial/_Grid", ViewBag.WebGrid) 
      End If 
     End Function 

     Private Function CreateGrid(source As List(Of GemeentePostModel)) As WebGrid 
      Return New WebGrid(source:=source, rowsPerPage:=10, ajaxUpdateContainerId:="grid", defaultSort:=GemeentePostColumnsEnum.GemeenteNaam) 
     End Function 

좀 검색 값을 입력하고 양식을 제출하면, 나는 다음과 같은 오류 얻을 :

을 "WebGrid"도우미에서 Ajax 지원을 활성화하려면 JQuery 스크립트 참조가 필요합니다.

결과 : 올바른 필터링 된 값을 얻었지만 내 div (updatetargetid) i 채워지지 않아.

나는 이미 jQuery를 눈에 거슬리지 스크립트를 추가하고 내 헤더를 포함 : 그것은 if (typeof(jQuery)=='undefined')에 나누기 경우 다음 그에 jQuery를 찾는 가장 확실히 아니기 때문에

<!DOCTYPE html> 
<html> 
<head> 
    <title>X</title> 
    <link href="/X/Content/Site.css" rel="stylesheet" type="text/css" /> 
    <link href="/X/Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" /> 
    <script src="/X/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> 
    <script src="/X/Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script> 
    <script src="/X/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script> 
</head> 
+0

firebug 또는 개발자 도구를 사용하여 클라이언트 측 javascript를 디버깅하거나 다른 jquery 라이브러리 등을 찾고있을 수도 있습니다. –

+0

IE에서 개발자 도구를 사용하여 디버깅 한 결과, "JQuery 스크립트 참조가 필요합니다. "WebGrid"도우미 "오류에서 Ajax 지원을 사용 가능하게하십시오. 그것을 건너 뛸 때 레이아웃이없이 div에 삽입 할 페이지가 있습니다. 특정 버전에 대한 참조가 표시되지 않습니다. 경고 : "

0

Return New WebGrid(source:=source,..... 

Return New WebGrid(source: source,..... 

즉 "="를 드롭

을 읽어해야 하는가? (죄송합니다. VB를 사용하신 이후로 오랜 시간이 걸렸습니다.)

또한 URL 주소의 부분보기에 대한 컨트롤러 작업 이름과 매개 변수가 표시됩니까? 양식을 서버에 다시 게시하는 방법과 관련이있을 수 있습니다. 사용자가 제출 단추를 누르는 대신 JavaScript를 사용하여 양식 데이터를 프로그래밍 방식으로 게시하려고 할 때 이와 동일한 오류가 발생했습니다. 그에 따라 페이지 새로 고침, 메뉴 선택 및 드롭 다운 선택 이벤트를 채우기 위해 그리드가 필요하고 작업에 어려움을 겪고있었습니다. 내가받은 오류를받은 부분은 웹 페이지가 채워진 부분 페이지 였지만 나머지 페이지는 없었습니다.

문제는 해결하지 못했지만 그 문제를 해결할 수있었습니다. 이

@model MyProject.Models.GridResultsModel 
... 

<div id="updatetarget"> 
    @Html.Partial("_GridResults", Model) 
</div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#updatetarget').load("_GridResults")   
    }); 
</script> 

영감에보기이 게시물에서 온

편집 : Multiple Checkbox selection using Webgrid in MVC 3 (select All/Deselect All), Sorting and Paging

희망이 당신이 직면 할 수있는 문제가 어디에이다

+0

아니요, VB 코드에는 등호가 필요합니다. 예 : 출처 : = 모델 –

1

하는 데 도움이 내 솔루션이 포함 "jquery.unobtrusive-ajax.min.js"파일에 대한 참조가 귀하의 페이지에 있습니다.

YSlow 또는 PageSpeed를 사용하는 경우 제안 사항 중 하나는 css가 머리에 배치되고 javascript가 맨 아래에 배치된다는 것입니다.

이로 인해 발생하는 문제가 발생합니다 (나에게도 마찬가지입니다).

참조가 맨 아래에있는 경우 페이지의 첫 번째로드 (새로 고침)시 WebGrid 도우미가 작업을 시작하기 전에 javascipt 파일이로드되지 않고 팝업이 표시됩니다 누락 된 참조에 대한 메시지 이를 취소하면 페이징 또는 정렬이 실제로 작동하고 페이지를 다시 새로 고칠 때까지 메시지가 사라집니다.

스크립트 참조를 맨 위로 이동하거나 지연 처리를 위해 document.ready 스크립트를 작성할 수 있습니다.

관련 문제