我有一个有多个选项的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)
}
}
}