根据grails中选择的选项显示其他详细信息

Displaying other details according to the selected option in grails

本文关键字:显示 其他 详细信息 选项 grails 选择 根据      更新时间:2023-09-26
<head>
<g:javascript library='jquery' />
<r:layoutResources />
<script type="text/javascript">
    function getGroupsDetails(){
        var selectedGroup = jQuery("#group").val();
        if(selectedGroup != "")
            ${remoteFunction (controller: 'groups', action: 'details', params: '''groupId='' + selectedGroup', update: 'details')}
    }
</script>
</head>
<body>
    <div class="col-xs-12 col-sm-4">
        <strong>By Group Name :</strong>
        <g:select id="groups" name="groupName" from="${Groups.list()}" value="${groupsInstance?.id}" noSelection="['':'-Select-']" optionKey="id" onChange="getGroupsDetails();" />
        <div id="details"></div>
    </div>
</body>
</html>

详细操作如下

def details(){
    println "in details"
    def groupIns = Groups.get(params.id)
    println groupIns.id
    render(template: "details", model: [groupIns: groupIns])
 }

现在它进入了javascript和细节控制器。在控制器中,我也打印了id。但是在GSP中什么也没显示。

在类中包含toString。当对象打印tostring时,返回gname

    class Groups {
           String gowner
           String gname
           int devicenum
        static constraints = {
        }

        String toString() {
            "$gname"
        }
    }

first.gsp:

在select中不需要list.gname(),因为我们包含了toString()。在下面的代码中,当我们选择group时,它调用javascript函数,该函数将调用更新特定div的操作。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<g:javascript library='jquery' />
<r:layoutResources />
    <script type="text/javascript">
        function getGroupDetails(){
                    alert("Function calling");
            var selectedGroup = jQuery("#group").val();
                    alert(selectedGroup);
            if(selectedGroup != "")
                ${remoteFunction (controller: 'group', action: 'details', params: '''groupId='' + selectedGroup', update: 'details')}
        }
    </script>
</head>

<g:select id="group" name="groupName" from="${Groups.list()}"
value="${groupInstance?.id}" noSelection="['':'-Select-']" optionKey="id" 
onChange="getGroupDetails();" />
<div id="details"></div>
控制器动作:

def details(){
   println params.groupId
   def groupIns = Group.get(params.groupId)
   render(template: "details", model: [groupIns: groupIns])
}

_details.gsp:

 Name:${groupIns.gname}
 Owner:${groupIns.gowner}
 Devicenum:${groupIns.devicenum}