我想自動設置根模塊視圖爲true,如果選擇了子模塊,任何人都可以幫助我,請檢查我附帶的JSF和Managed Bean代碼。設置父數據值設置真如果選擇了子選項
JSF代碼
<p:dialog widgetVar="assignPermission" id="assignPermissionDlgId">
<p:panel>
<h:form id="form">
<p:dataTable value="#{roleModule.modulesList}" var="modules"
id="tableId">
<p:column headerText="Root Module ID:">
<h:outputText value="#{modules.moduleID}" />
</p:column>
<p:column headerText="Module ID:">
<h:outputText value="#{modules.rootID}" />
</p:column>
<p:column headerText="Module Description:">
<h:outputText value="#{modules.moduleDescription}" />
</p:column>
<p:column headerText="View">
<h:selectBooleanCheckbox id="view" value="#{modules.view}" />
</p:column>
<p:column headerText="Create">
<h:selectBooleanCheckbox id="create" value="#{modules.create}" />
</p:column>
<p:column headerText="Edit">
<h:selectBooleanCheckbox id="edit" value="#{modules.edit}" />
</p:column>
<p:column headerText="Delete">
<h:selectBooleanCheckbox id="delete" value="#{modules.delete}" />
</p:column>
</p:dataTable>
<p:toolbar>
<p:toolbarGroup>
<p:commandButton value="Submit" update=":data"
action="#{roleModule.confirmMethod}" >
<p:confirm header="Confirmation" message="Are you sure?"
icon="ui-icon-alert" />
</p:commandButton>
</p:toolbarGroup>
</p:toolbar>
<p:confirmDialog global="true" showEffect="fade"
hideEffect="explode">
<p:commandButton value="Yes" type="button"
styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="No" type="button"
styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</h:form>
</p:panel>
</p:dialog>
ManagedBean
public void confirmMethod()
{
System.out.println(modulesList.size());
PreparedStatement pst = null;
Connection con = getConnection();
// System.out.println("value check"+applicationShort);
String insert="INSERT INTO role_module_mapping VALUES(?,?,?,?,?,?)";
for(Module list : modulesList)
{
try {
pst=con.prepareStatement(insert);
pst.setInt(1, 0);
pst.setInt(2, list.getModuleID());
pst.setString(3, (list.isCreate())==true? "T" : "F");
pst.setString(4, (list.isEdit())==true? "T" : "F");
pst.setString(5, (list.isDelete())==true? "T" : "F");
pst.setString(6, (list.isView())==true? "T" : "F");
pst.executeUpdate();
// System.out.println("Method called"+value);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
的js
<script type="text/javascript">
$(function() {
$(PrimeFaces.escapeClientId('form:tableId')).on(
"change",
"input[type='checkbox'][name*='edit'], input[type='checkbox'][name*='create'], input[type='checkbox'][name*='delete']",
function() {
var tr = $(this).parent().parent();
var view = tr
.find("input[type='checkbox'][name*='view']");
var create = tr
.find("input[type='checkbox'][name*='create']");
var edit = tr
.find("input[type='checkbox'][name*='edit']");
var deleteBox = tr
.find("input[type='checkbox'][name*='delete']");
if ($(this).is(':checked')) {
view.prop("checked", true);
} else {
if (create.is(':checked') || edit.is(':checked')
|| deleteBox.is(':checked')) {
view.prop("checked", true);
} else
view.prop("checked", false);
}
});
$(PrimeFaces.escapeClientId('form:tableId')).on(
"change",
"input[type='checkbox'][name*='view']",
function() {
var tr = $(this).parent().parent();
var view = tr.find("input[type='checkbox'][name*='view']");
var create = tr.find("input[type='checkbox'][name*='create']");
var edit = tr.find("input[type='checkbox'][name*='edit']");
var deleteBox = tr
.find("input[type='checkbox'][name*='delete']");
if ($(this).is(':not(:checked)')) {
create.prop("checked", false);
edit.prop("checked", false);
deleteBox.prop("checked", false);
}
});
});
</script>
我不明白你在做什麼。我無法找到根模塊視圖和子模塊。我的猜測是你想標記用戶選擇的行的複選框(用#{modules.view})。那是對的嗎? –
爲這個「根模塊」設置一個id屬性。**
**,然後爲其中的所有模塊添加一個更改事件。 $('#rModule')。children()。each(function(){$(this).on('click',function(){$(this).parent()。addClass('active'); })});'。添加一個css類'active',它將設置一些突出顯示的顏色,以區分根元素的選擇 – dreamweiver
在附加屏幕中有兩行(根模塊ID和模塊ID)根模塊ID表示父模塊,模塊ID表示子ID )如果用戶選擇子ID需要自動標記父複選框(與#{modules.view}) –