2017-03-23 11 views
0

SELECT가 변경되었을 때 부분 템플릿 만 렌더링하려고합니다. 나는 onchange 및 remotFunction을 시도했지만 컴파일되지 않습니다. 내가 작성한 GSP에서 Grails가 선택시 변경시 부분 템플릿 렌더링

:
<g:select name="sawMill" from="${prodBuffer}" value="" onchange="${remoteFunction(action: 'availableProducts')}"/> 

컨트롤러에

:

오류

def availableProducts() { 
    render(template:"AvailableProductData", model:[prodBuffer: getBufferList()]) 
} 
:

Class 
groovy.lang.MissingMethodException 
Message 
    Request processing failed; nested exception is org.grails.gsp.GroovyPagesException: Error processing GroovyPageView: [views/orders_and_Store/list.gsp:154] Error executing tag <g:form>: Error evaluating expression [remoteFunction(action: 'availableProducts')] on line [24]: No signature of method: D__Grails_projects_torntrading_grails_app_views_orders_and_Store_list_gsp.remoteFunction() is applicable for argument types: (java.util.LinkedHashMap) values: [[action:availableProducts]] 
Caused by 
    No signature of method: D__Grails_projects_torntrading_grails_app_views_orders_and_Store_list_gsp.remoteFunction() is applicable for argument types: (java.util.LinkedHashMap) values: [[action:availableProducts]] 

내가 다른 솔루션을 많이 봤어요 하지만 그들은 더 복잡합니다, 나는 단지 Gsp의 조각을 렌더링하고 싶을 때 선택 변경과 나는 어떤 매개 변수가 필요하다고 생각하지 않습니다.

+0

Grails 3를 사용하는 경우이 종속성을 앱에 추가해야합니다 (권장하지 않음). https://plugins.grails.org/plugin/grails/ajax-tags –

답변

1

어떤 Grails 버전을 사용하고 있습니까?

remoteFunction이 2.4.x에서

당신처럼 자신의 아약스 기능을 사용할 수 있습니다

사용되지 않습니다 : 내가 productController라는 컨트롤러를 가정 한

<head> 
    <script type="text/javascript"> 
     function availableProducts(){ 
      $.ajax({ 
       url:'${g.createLink(controller:'product', action:'availableProducts')}', 
       data: [sawMill], 
       type: 'get' 
     }).success(function (data) { $('#divToUpdate').html(data); }); 
} 
    </script> 
<body> 
    <g:select name="sawMill" from="${millList}" value="" onchange="availableProducts()"/> 

    <div id="divToUpdate"></div> 
</body> 

의에서 CreateLink 문에 그렇지 않은 경우를 변경할.

템플릿에서 업데이트 할 화면의 영역을 지정해야합니다 (이 경우 divToUpdate ID로 업데이트하는 경우). 다시 gsp에 맞게 변경합니다.

제어기는이 제어기의 다른 gsp 파일과 동일한 디렉토리에 _AvailableProductData라는 템플리트가 있다고 가정하고 정상적으로 작동해야합니다.

+0

그 결과, 오류가 사라졌고 페이지가 렌더링되지만 예상대로 작동하지 않습니다. 선택한 sawMill을 – larand

+0

과 같은 필터에 사용하고 싶었습니다. 제대로 작동했는데 오류가 사라지고 페이지가 렌더링되지만 예상대로 작동하지 않았습니다. 나는 선택된 sawmill을 larand

+0

sawMill 값이 availableProducts 조치로 전송되도록 응답이 업데이트되었으므로 이제 params.sawMill을 사용하여 검색 할 수 있습니다. –