2016-09-19 2 views
0

컨트롤러에서 반환 데이터를 필터링하는 데 사용할 수있는 추가 데이터를 bool로 보내려고하는 Kendo 표가 있습니다..Net을 사용하여 Kendo Ajax Grid 매개 변수

컨트롤러 :

public ActionResult Securities_Read([DataSourceRequest]DataSourceRequest request, bool filter) { 
    if (filter == true) // do something. 
} 

읽어

.Read(read => read.Action("Action", "Controller").Data("filterFunction")) 

필터 함수 :

function filterFunction() { 
    var filter = ($('#checkbox').is(":checked")) ? true : false; 
    console.log(filter); 
    return { 
     filter: filter 
    } 
} 

선택란 이벤트 핸들러 :

$('#checkbox').change(function() { 
    $('#grid').data('kendoGrid').dataSource.read(); 
}); 
,

체크 박스가 변경 될 때마다 변경 기능을 실행하며, 변경 기능은 검도 그리드를 호출하여 읽기 기능을 실행합니다. 검도 그리드는 filterFunction을 호출하여 추가 매개 변수를 가져옵니다. 필터 값을 콘솔에 기록하기 때문에 filterFunction이 실제로 호출되는 것을 볼 수 있습니다. 그러나 컨트롤러로 돌아 오면 추가 매개 변수의 값은 항상 null입니다.

무엇이 누락 되었습니까?

+0

나는 검도 용 포장재에 대한 팬이 아니지만 'return {filter : true}'뒤에 누락 된 세미콜론 만 있습니다. 또한 문자열이나 int를 전달하여 작동하는지 확인해 보았습니까? 나는 당신이 아직 가지고있는 것을 재현하려하지 않았습니다. – KSib

+0

@KSib는 다음과 같이 말했습니다 : 나는 현재 작동중인 구현 중 하나를보고 있으며 return 문을 세미콜론으로 처리하지는 않지만 함수의 끝에 추가해야 할 수도 있습니다. 당신이보기에 평소에하는 일과 유일하게 뚜렷한 차이가있는 것 같습니다. –

답변

0

검도 프레임 워크에서 필터가 핵심어로 사용되는 것처럼 보입니다. 그래서 나는 변경시 :

function filterFunction() { 
    var filter = ($('#checkbox').is(":checked")) ? true : false; 
    console.log(filter); 
    return { 
     filter: filter 
    } 
} 

에 :

function filterFunction() { 
    var filter = ($('#checkbox').is(":checked")) ? "true" : "false"; 
    console.log(filter); 
    return { 
     shouldFilter: filter 
    } 
} 

또한 내가 문자열과 참/거짓 값으로 컨트롤러의 매개 변수를 변경했다, 그래서 당신은 단지 매개 변수로 문자열을 전달할 수 있다는 것을 알

public ActionResult Securities_Read([DataSourceRequest]DataSourceRequest request, bool filter) { 
    if (filter == true) // do something. 
} 

행 :

public ActionResult Securities_Read([DataSourceRequest]DataSourceRequest request, string filter) { 
    if (filter == "true") // do something. 
} 
상기 자바 스크립트 함수 스트링

그게 내 문제를 해결했습니다.

관련 문제