Asp.Net TreeView with CheckBox
12374 단어 checkbox
<script language="javascript" type="text/javascript">
function HandleCheckbox()
{
var element = event.srcElement;
if (element.tagName == "INPUT" && element.type == "checkbox")
{
var checkedState = element.checked;
while (element.tagName != "TABLE") // Get wrapping table
{
element = element.parentElement;
}
var parentElement = element;
if(checkedState)
{
CheckParents(element);
}
element = element.nextSibling; //element.tagName = DIV
if (element != null) // If no childrens then exit
{
var childTables = element.getElementsByTagName("TABLE");
for (var tableIndex = 0; tableIndex < childTables.length; tableIndex++)
{
CheckTable(childTables[tableIndex], checkedState);
}
}
if(checkedState == false)
{
UnCheckParents(parentElement);
}
}
}
// Uncheck the parents of the given table, Can remove the recurse (redundant)
function CheckParents(table)
{
if (table == null || table.rows[0].cells.length == 2) // This is the root
{
return;
}
var parentTable = table.parentElement.previousSibling;
CheckTable(parentTable, true);
CheckParents(parentTable);
}
// Check the parents of the given table, Can remove the recurse (redundant)
function UnCheckParents(table)
{
if (table == null || table.rows[0].cells.length == 2) // This is the root
{
return;
}
var parentTable = table.parentElement.previousSibling;
var checkedCount =GetCheckedCount(table.parentElement);
if(checkedCount == 0)
{
CheckTable(parentTable, false);
}
UnCheckParents(parentTable);
}
// Handle the set of checkbox checked state
function CheckTable(table, checked)
{
var checkboxIndex = table.rows[0].cells.length - 1;
var cell = table.rows[0].cells[checkboxIndex];
var checkboxes = cell.getElementsByTagName("INPUT");
if (checkboxes.length == 1)
{
checkboxes[0].checked = checked;
}
}
//Get checked children count
function GetCheckedCount(table)
{
var checkedCount = 0;
var element = table.nextSibling;
var childTable = table.getElementsByTagName("TABLE");
for(var tableIndex = 0;tableIndex < childTable.length; tableIndex++)
{
var childTables = childTable[tableIndex];
var checkboxIndex = childTables.rows[0].cells.length - 1;
var cell = childTables.rows[0].cells[checkboxIndex];
var checkboxes = cell.getElementsByTagName("INPUT");
if (checkboxes.length == 1 && checkboxes[0].checked == true)
{
checkedCount++;
}
}
return checkedCount;
}
</script>
<asp:TreeView ID="TreeViewModules" runat="server" ShowCheckBoxes="All" onclick="HandleCheckbox();"
ShowLines="True" ExpandDepth="1" meta:resourcekey="TreeViewModulesResource1"></asp:TreeView>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useRef() Hook을 사용하여 React Js에서 버튼이 있는 모든 확인란을 어떻게 선택/선택 취소합니까?useRef() Hook을 사용하여 React Js에서 버튼이 있는 모든 확인란을 어떻게 선택/선택 취소합니까? 이 게시물에서는 모든 확인란을 선택/선택 취소하는 방법에 대해 알아봅니다. useRef() 반응 후크 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.