Ajax 在grails表单中加载模板

Ajax 在grails表单中加载模板,ajax,grails,visibility,textfield,readonly,Ajax,Grails,Visibility,Textfield,Readonly,我想创建一个具有字段(电话、电子邮件、密码)的表单,请参见精确布局。除非单击“编辑btn”,否则表单应显示所有标签,然后标签将变为文本框。因为grails按钮没有可见性/只读属性,所以我选择了remoteaction按钮。 我的问题是,我似乎无法显示表单中的所有内容,包括我制作的模板(除非我单击“编辑btn”,即标签/文本字段显示的时间,否则无法显示),但不能在第一次加载时显示 模板: 电邮: 这很好,但输出是,在GSP(配置文件)中没有值或显示,除非我单击按钮“btnEditPhone” 因此

我想创建一个具有字段(电话、电子邮件、密码)的表单,请参见精确布局。除非单击“编辑btn”,否则表单应显示所有标签,然后标签将变为文本框。因为grails按钮没有可见性/只读属性,所以我选择了remoteaction按钮。 我的问题是,我似乎无法显示表单中的所有内容,包括我制作的模板(除非我单击“编辑btn”,即标签/文本字段显示的时间,否则无法显示),但不能在第一次加载时显示

模板: 电邮:

这很好,但输出是,
在GSP(配置文件)中没有值或显示,除非我单击按钮“btnEditPhone”

因此,我将代码更改为:

def profile=
    {
        def employeeId= params.employeeId


    MySession session = MySession.getMySession(request, employeeId)

    //findAllByCmCaseIdCmCase
    def employee = Employee.get(employeeId as Long)
    def empUser = EmployeeUser.findByEmployeeIdEmployee(employee)
    profileInstance = new Profile();
    profileInstance.id=employeeId as Long
    profileInstance.userName  = empUser.useridUsers.username
    profileInstance.password = empUser.useridUsers.passwordText
    profileInstance.email = employee.emplEmailAddr
    profileInstance.employeeName = employee.formatFirstLastName()
    profileInstance.phone = employee.formattedEmplWorkTelNbr()
    session.profileInstance = profileInstance

    if(profileInstance)
    {

        render(template:"/layouts/phoneProfile", model:[profileInstance:session.profileInstance, isEditPhone:false])
    }

    return [profileInstance: profileInstance, mySession: session, isEditEmail:false]
}
-不太好用,只渲染手机模板

因此,我将html代码改为此,而不是使用更新

<tr>
        <th scope="row"><label for="profileEditPhone">Phone:</label></th>
           <td ><g:render template="/layouts/phoneProfile" /></td>

        <td> <g:submitToRemote action="setPhoneTxtAreaVisible" value="${message(code: 'default.button.edit.label', default: 'Edit')}"  /></td>
        <td>&nbsp;</td>

      </tr>

电话:
-不是我想的那样工作


问题:如何显示配置文件页面,在第一次加载时所有模板都已存在,而无需单击编辑btn?

此处查看精确布局的链接不起作用…这是imaghe链接图像仍然不可用。你找到解决这个问题的办法了吗?如果是这样,请将其发布,并通过编辑将图像链接包含在问题中。
    <th scope="row"><label for="profileEditPhone">Phone:</label></th>

     <td id="showPhoneText"></td>

    <td><g:actionSubmit id="btnEditPhone"  action="setPhoneTxtAreaVisible" update="showPhoneText" value="${message(code: 'default.button.edit.label', default: 'Edit')}" /></td>

  </tr>
def setPhoneTxtAreaVisible=
    {
        def employeeId= params.employeeId

        MySession session = MySession.getMySession(request, params.employeeId)
        isEditPhone=true
        profileInstance = session.profileInstance

        render(template:"/layouts/phoneProfile", model:[profileInstance:session.profileInstance, isEditPhone:true])


    }
def profile=
    {
        def employeeId= params.employeeId


    MySession session = MySession.getMySession(request, employeeId)

    //findAllByCmCaseIdCmCase
    def employee = Employee.get(employeeId as Long)
    def empUser = EmployeeUser.findByEmployeeIdEmployee(employee)
    profileInstance = new Profile();
    profileInstance.id=employeeId as Long
    profileInstance.userName  = empUser.useridUsers.username
    profileInstance.password = empUser.useridUsers.passwordText
    profileInstance.email = employee.emplEmailAddr
    profileInstance.employeeName = employee.formatFirstLastName()
    profileInstance.phone = employee.formattedEmplWorkTelNbr()
    session.profileInstance = profileInstance

    if(profileInstance)
    {

        render(template:"/layouts/phoneProfile", model:[profileInstance:session.profileInstance, isEditPhone:false])
    }

    return [profileInstance: profileInstance, mySession: session, isEditEmail:false]
}
<tr>
        <th scope="row"><label for="profileEditPhone">Phone:</label></th>
           <td ><g:render template="/layouts/phoneProfile" /></td>

        <td> <g:submitToRemote action="setPhoneTxtAreaVisible" value="${message(code: 'default.button.edit.label', default: 'Edit')}"  /></td>
        <td>&nbsp;</td>

      </tr>