Grails动态显示实现(部分页面更新)

Grails动态显示实现(部分页面更新),grails,grails-2.0,Grails,Grails 2.0,我有一个选择字段来选择部门。我想实现一个显示在该部门工作的员工列表的视图。我想在同一个页面视图中显示选择字段和员工列表。如何将所选字段参数发送到同一控制器并更新员工列表对象并在同一页面中显示该列表。部分页面更新有三个主要部分。我将通过一些示例向您概括介绍每个部分是如何组成的。这会让你走上正确的道路。我不得不做很多假设,因为你的问题只涉及细节。但是,您应该能够获取这些信息并编写您的WIN实现 第一部分提出请求 这涉及监控选择列表的更改,并将所选选项的值发送给控制器。JQuery非常适合这种情况。我

我有一个选择字段来选择部门。我想实现一个显示在该部门工作的员工列表的视图。我想在同一个页面视图中显示选择字段和员工列表。如何将所选字段参数发送到同一控制器并更新员工列表对象并在同一页面中显示该列表。

部分页面更新有三个主要部分。我将通过一些示例向您概括介绍每个部分是如何组成的。这会让你走上正确的道路。我不得不做很多假设,因为你的问题只涉及细节。但是,您应该能够获取这些信息并编写您的WIN实现

第一部分提出请求 这涉及监控选择列表的更改,并将所选选项的值发送给控制器。JQuery非常适合这种情况。我将假设select列表的id为departmentId,我们希望将employee列表的内容放入id为displayList的元素中

<script type='text/javascript'>
<!--
  (function() {
    $("#departmentId").on("change", function() {
      $.get("${g.createLink(controller: 'employeee', action: 'listForDepartment')}/"+$(this).val(), function(data) {
        $("#displayList").html(data);
      });
    });
  })();
// -->
</script>
第3部分在模板中显示结果 最后,我们的模板grails app/views/employee/_employeeListForDepartment.gsp将显示该部门的员工。因为我们使用了employee控制器,所以模板在employee视图中,所有模板都以下划线开头

<h1>Employees for ${department.name}</h1>
<ul>
<g:each in="${employees}" var="employee">
  <li>${employee.name}</li>
</g:each>
</ul>

当然,您的实现细节可能会非常不同,但总体概念应该是相同的。这只涉及了主要部分,并遗漏了很多细节,例如微调器、取消请求等。

部分页面更新有三个主要部分。我将通过一些示例向您概括介绍每个部分是如何组成的。这会让你走上正确的道路。我不得不做很多假设,因为你的问题只涉及细节。但是,您应该能够获取这些信息并编写您的WIN实现

第一部分提出请求 这涉及监控选择列表的更改,并将所选选项的值发送给控制器。JQuery非常适合这种情况。我将假设select列表的id为departmentId,我们希望将employee列表的内容放入id为displayList的元素中

<script type='text/javascript'>
<!--
  (function() {
    $("#departmentId").on("change", function() {
      $.get("${g.createLink(controller: 'employeee', action: 'listForDepartment')}/"+$(this).val(), function(data) {
        $("#displayList").html(data);
      });
    });
  })();
// -->
</script>
第3部分在模板中显示结果 最后,我们的模板grails app/views/employee/_employeeListForDepartment.gsp将显示该部门的员工。因为我们使用了employee控制器,所以模板在employee视图中,所有模板都以下划线开头

<h1>Employees for ${department.name}</h1>
<ul>
<g:each in="${employees}" var="employee">
  <li>${employee.name}</li>
</g:each>
</ul>
当然,您的实现细节可能会非常不同,但总体概念应该是相同的。这只涉及了其中的主要部分,并遗漏了很多细节,例如微调器、取消请求等等