我将数据表更改为服务器端处理。从这一点来看,行属性似乎不再起作用。
这是我在JSP中对数据表的定义:
<datatables:table id="users" url="/user_User_Json_List_Dandelion.action" serverSide="true" row="user">
<datatables:column titleKey="user.user.list.username" sortable="false" property="benutzername" />
<datatables:column titleKey="user.user.list.prename" sortable="false" property="person.vorname" />
<datatables:column titleKey="user.user.list.surname" sortable="false" property="person.nachname" />
<datatables:column titleKey="user.user.list.email" sortable="false" property="person.email" />
<datatables:column cssCellClass="img" sortable="false" cssCellStyle="width: 40px">
bla<c:if test="${user.gesperrt}">
<img src="<%=request.getContextPath()%>/static/images/locked.gif" title="<s:text name="%{getText('user.user.list.locked')}"/>"
alt="<s:text name="%{getText('user.user.list.locked')}"/>" />
</c:if>
<c:if test="${!user.aktiv}">
<img src="<%=request.getContextPath()%>/static/images/delete.gif" title="<s:text name="%{getText('user.user.list.delete')}"/>"
alt="<s:text name="%{getText('user.user.list.delete')}"/>" />
</c:if>
</datatables:column>
<datatables:column cssCellClass="img" sortable="false" cssCellStyle="width: 20px">
<c:if test="${!user.systemBenutzer}">
<s:url var="edit" action="user_User_Edit_Pre">
<s:param name="benutzerId">${user.benutzerId}</s:param>
</s:url>
<s:a href="%{edit}" title="%{getText('user.user.edit.header')}">
<img src="<%=request.getContextPath()%>/static/images/edit.gif" title="<s:text name="%{getText('user.user.edit.header')}"/>"
alt="<s:text name="%{getText('user.user.edit.header')}"/>" />
</s:a>
</c:if>
</datatables:column>
<datatables:column cssCellClass="img" sortable="false" cssCellStyle="width: 20px">
<s:url var="listRights" action="user_Auth_List_Pre">
<s:param name="benutzerId">${user.benutzerId}</s:param>
</s:url>
<s:a href="%{listRights}" title="%{getText('user.user.list.listRights')}">
<img src="<%=request.getContextPath()%>/static/images/user_details.gif" title="<s:text name="%{getText('user.user.list.listRights')}"/>"
alt="<s:text name="%{getText('user.user.list.listRights')}"/>" />
</s:a>
</datatables:column>
</datatables:table>
所有调用(例如"(都不起作用,自从我打开服务器端处理以来,没有可用的用户变量。
来自 Json WebService 的 Json 结果如下所示:
{"data":[{"aktiv":true,"benutzerId":"8a2fde263d8b94000144020a7e066fa5","benutzername":"adm_boegel","gesperrt":false,"systemBenutzer":false},{.....
那么这里出了什么问题呢?我还能如何访问数据?
感谢您的任何帮助。
编辑:
只是为了测试,我将其中一列更改为:
<datatables:column cssCellClass="img" sortable="false" cssCellStyle="width: 40px">
hello
</datatables:column>
"你好"从来没有在大约 2500 行中打印出来。
编辑2:
每当设置为服务器端时,我只能通过以下方式访问数据
不使用服务器端时,我也可以使用行属性和类似的东西 ${user.gesperrt}
也许这是一个错误?
如文档前一章所述
8.3. 自定义列内容
一个人只能使用属性属性的列标签,而我使用 renderFunction-property 来调用 java 脚本,然后它可以处理一些逻辑。但据我观察,这些返回一些 html(如 img 标签(的 java 脚本调用会减慢渲染速度。
我希望在终端服务器端处理虽然会在速度上带来一些好处。
我的蒲公英数据表列如下所示:
<datatables:column property="aktiv" renderFunction="produceUserLockedIcon"/>
我的 Java 脚本看起来像:
<script type="text/javascript">
function produceUserLockedIcon(data, type, full) {
return "testString: " + '<a href="blaa">blaa</a>' + '<img src="<%=request.getContextPath()%>/static/images/locked.gif">';
}
</script>