即使刷新浏览器后,如何在grails下拉列表中保留使用ajax选择的模板?

时间:2017-04-24 05:46:06

标签: ajax grails dropdown

我有一个有多个选项的grails下拉列表。在下拉列表中选择的每个选项上,通过AJAX加载特定模板。因此,当我刷新页面时,我设法保持下拉值不变,但模板不会保留。

在gsp中:

<div class="pull-right " id="categorydropdown">
    <g:select class="selectpicker text-center" name="sortByCategories" id="sortByCategories" from="${sortByCategories}" optionKey="value" optionValue="value" value="A" onchange="getcategories()"/>
</div>

<div id="loadedtemplate"></div>

在js:

function getcategories(){
var selectedValue = $('#sortByCategories').val();
var contentdiv = $('#loadedtemplate');
$('#loading-gif').show();

$.ajax({
    type: 'post',
    url: htps://localhost:8080/project/getDropdownCategories',
    data: 'selectedValue='+selectedValue',
    success: function(data){
        $(contentdiv).html(data).fadeIn('fast');
        $('#loading-gif').hide();
    }
    }).error(function(){
        $('#loading-gif').hide();
    });
}

在控制器中:

def getDropdownCategories() {
    def list= projectService.getList(params.selectedValue)

    def model = [list: list]

    if (request.xhr) {
        if (params.selectedValue == 'A') {
            render(template: "/project/listA", model: model)
        }
        else if(params.selectedValue=='B'){
            render(template: "/project/listB", model: model)
            } 

        }else if(params.selectedValue=='C'){
            render(template: "/project/listC", model: model)
            }
        else if(params.selectedValue=='D'){
            render(template: "/project/listD", model: model)
            }  

    }
}

0 个答案:

没有答案