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