我必须使用Liferay搜索容器禁用从数据库中检索的行。我有一些条件存储在数据库中。
我希望实现的目标是:
我想要做的是,如果出席预先标记,请在表格上显示预先标记出席的行,并且不允许用户标记该学生的出勤率,即禁用该行。
我怎样才能做到这一点?
EDITED: 代码段
Mark Attendance for Today:
<%=new java.util.Date()%>
<portlet:actionURL name="updateAtt" var="updateAttURL" />
<aui:form name="updateAtt" action="<%=updateAttURL.toString() %>" method="post" >
Choose Date to mark Attendance:
<liferay-ui:input-date formName="attendanceDate" yearRangeStart="<%=year %>" yearRangeEnd="<%=year %>"
yearValue="<%=year %>" monthValue="<%=month %>" dayValue="<%=day %>"
dayParam="datt" monthParam="matt" yearParam="yatt" />
<portlet:renderURL var="viewstudentDataURL"/>
<liferay-ui:search-container delta="20" emptyResultsMessage="No Results Found">
<liferay-ui:search-container-results total="<%= studentAttendanceDetails .size() %>"
results="<%= ListUtil.subList(studentAttendanceDetails , searchContainer.getStart(), searchContainer.getEnd()) %>" />
<liferay-ui:search-container-row modelVar="search"
className="com.corpserver.mis.portal.model.Student">
<%
String LImageId = String.valueOf(search.getFileEntryId());
long ImageId = Long.valueOf(LImageId);
DLFileEntry image = DLFileEntryLocalServiceUtil .getFileEntry(ImageId );
String imageURL = "/documents/" + image.getGroupId() + "/" + image.getFolderId() + "/" + image.getTitle()+"/"+image.getUuid();
%>
<liferay-ui:search-container-column-text name="student Photo" href = "">
<img src="<%=imageURL%>" height="50" width="50"/>
</liferay-ui:search-container-column-text>
<!-- Code to display student Image -->
<%
String eol = System.getProperty("line.separator");
%>
<liferay-ui:search-container-column-text name='student Name' value='<%=String.valueOf(search.getstudentFname()) + String.valueOf(search.getstudentLname()) + "<br>" + String.valueOf(search.getstudentTitle()) %>' href="" >
</liferay-ui:search-container-column-text>
<liferay-ui:search-container-column-text name="Attendance Status">
<label>Present</label><input type = "radio" name ='updateattendance<%=String.valueOf(search.getstudentId())%>' value = "Present" />
<label>Absent</label><input type = "radio" name= 'updateattendance<%=String.valueOf(search.getstudentId())%>' value = "Absent"/>
</liferay-ui:search-container-column-text>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator searchContainer="<%=searchContainer %>" paginate="<%=true %>" />
</liferay-ui:search-container>
<input type = "submit" value = "Update"/>
</aui:form>
</body>
</html>
答案 0 :(得分:1)
您可以使用条件语句来显示标签而不是输入控件或禁用输入控件,如下所示:
<%
String LImageId = String.valueOf(search.getFileEntryId());
long ImageId = Long.valueOf(LImageId);
DLFileEntry image = DLFileEntryLocalServiceUtil .getFileEntry(ImageId );
String imageURL = "/documents/" + image.getGroupId() + "/" + image.getFolderId() + "/" + image.getTitle()+"/"+image.getUuid();
// you can define a flag for the pre-marked attendance
boolean preMarkFlag = isStudentPreMarked(); // have value true (student is premarked) or false (if the student is not pre-maked)
%>
<liferay-ui:search-container-column-text name="Attendance Status">
<label>Present</label>
<input type = "radio"
name ='updateattendance<%=String.valueOf(search.getstudentId())%>'
value = "Present"
<%= preMarkFlag ? "disabled" : "" %> />
<label>Absent</label>
<input type = "radio"
name ='updateattendance<%=String.valueOf(search.getstudentId())%>'
value = "Absent"
<%= preMarkFlag ? "disabled" : "" %> />
</liferay-ui:search-container-column-text>
或者另一种方法是只显示一个标签,而不是显示输入单选按钮
<liferay-ui:search-container-column-text name="Attendance Status">
<%
// I am assuming if preMarkFlag is true then the student is absent
// as mentioned in your question
if (preMarkFlag) {
%>
<label>Absent</label>
<%
} else {
%>
<label>Present</label>
<input type = "radio"
name ='updateattendance<%=String.valueOf(search.getstudentId())%>'
value = "Present"
<%= preMarkFlag ? "disabled" : "" %> />
<label>Absent</label>
<input type = "radio"
name ='updateattendance<%=String.valueOf(search.getstudentId())%>'
value = "Absent"
<%= preMarkFlag ? "disabled" : "" %> />
<%
}
%>
</liferay-ui:search-container-column-text>