Имам мрежа с подмрежи (връзка баба, дядо, родител, дете).
Има ли начин да зададете конкретни редове на разширяеми/неразширяеми въз основа на условие?
Например всички баби и дядовци имат деца (родители), а някои родители имат деца, а други не. Има ли начин тези родители без деца да не могат да се разширяват в jqgrid? Гледах атрибута onSubgridBeforeExpand, но това просто ще предотвратяване на разширяването на подмрежата. Не искам да обърквам потребителите да мислят, че решетката трябва да може да се разширява, когато в действителност не е (щракването върху бутона плюс и нищо не се случва би било объркващо imo). В най-лошия случай мога да използвам този атрибут, за да покажа нещо, което гласи, че няма деца, но бих искал да избегна това, ако е възможно.
Благодаря предварително и ето моят jsp с решетката в него. Не вярвам, че struts.xml или класовете за действие са необходими за този тип въпроси, но ако посочите причина, поради която може да са необходими, мога да ги споделя.
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<s:form id="getJunctionInstance" name="getJunctionInstance" action="populateJI" targets="#gridtable" method="post">
<input hidden="true" name="rpName" id="rpName"/>
</s:form>
<s:form id="getServerHealth" name="getServerHealth" action="populateSH" targets="#gridtable2" method="post">
<input hidden="true" name="jiName" id="jiName"/>
</s:form>
<script>
$.subscribe("getJunctionInstance",function(event){
let row_id = event.originalEvent.row_id;
document.forms['getJunctionInstance'].elements['rpName'].value = row_id;
//document.forms['getJunctionInstance'].submit();
//Don't submit the form, as it is submitted when onSubGridRowExpanded for gridtable is called
});
$.subscribe("getServerHealth",function(event) {
let row_id = event.originalEvent.row_id;
document.forms['getServerHealth'].elements['jiName'].value = row_id;
});
</script>
<s:url var="remoteurl" action="updateRP"/>
<s:url var="junctionInstanceJson" action="updateJIJson"/>
<s:url var="serverHealthJson" action="updateSHJson"/>
<sjg:grid
id="gridtable"
caption="Reverse Proxy List"
dataType="json"
href="/bg%{remoteurl}"
pager="true"
gridModel="proxies"
rowList="10,15,20"
rowNum="20"
rownumbers="true"
onSubGridRowExpanded="getJunctionInstance"
height="600"
width="900"
loadonce="true"
>
<sjg:grid
id="gridtable2"
caption="Junction Instance List"
dataType="json"
subGridUrl="%{junctionInstanceJson}"
pager="true"
gridModel="junctionInstance"
formIds="getJunctionInstance"
reloadTopics="getJunctionInstance"
rowList="10,15,20"
rowNum="20"
rownumbers="false"
onSubGridRowExpanded="getServerHealth"
width="700"
loadonce="true"
>
<sjg:grid
id="gridtable3"
caption="Server Health List"
dataType="json"
subGridUrl="%{serverHealthJson}"
pager="true"
gridModel="serverInstance"
formIds="getServerHealth"
reloadTopics="getServerHealth"
rowList="10,15,20"
rowNum="20"
rownumbers="false"
width="500"
loadonce="true"
>
<sjg:gridColumn name="name" index="name" title="Name" key="true" hidden="true" sortable="false"/>
<sjg:gridColumn name="label" index="label" title="Label" sortable="true"/>
<sjg:gridColumn name="health" index="health" title="Health" formatter="integer" sortable="true"/>
</sjg:grid>
<sjg:gridColumn name="name" index="name" title="Name" key="true" hidden="true" sortable="false"/>
<sjg:gridColumn name="label" index="label" title="Label" sortable="true"/>
<sjg:gridColumn name="health" index="health" title="Health" formatter="integer" sortable="true"/>
</sjg:grid>
<sjg:gridColumn name="name" key="true" index="name" title="Name" hidden="true" sortable="false"/>
<sjg:gridColumn name="label" index="label" title="Label" sortable="true"/>
<sjg:gridColumn name="health" index="health" title="Health" formatter="integer" sortable="true"/>
</sjg:grid>
Does anyone know if this type of conditioning is possible with jqgrid?