在Liferay搜索容器中根据数据库中的条件禁用行

时间:2013-05-13 06:59:49

标签: liferay liferay-6 disabled-input javascript

我必须使用Liferay搜索容器禁用从数据库中检索的行。我有一些条件存储在数据库中。

我希望实现的目标是:

  1. 我正在显示需要标记出勤率的学生名单。
  2. 有时候学生可以提前休假,在这种情况下,出勤率会在数据库中预先标记。
  3. 因此,当显示出勤标记表格时,我想通过禁用包含出席已经标记的学生数据的行来禁用出勤标记。
  4. 我想要做的是,如果出席预先标记,请在表格上显示预先标记出席的行,并且不允许用户标记该学生的出勤率,即禁用该行。

    我怎样才能做到这一点?

    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>
    

1 个答案:

答案 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>