I want to post back whenever checkbox is changed for a Tree view, I searched and found answers but it isn't working. When i debug it never gets to the event function
this is the tree with attribute OnTreeNodeCheckChanged
<asp:TreeView ShowCheckBoxes="All" OnTreeNodeCheckChanged ="UnSelectedTree_SelectedNodeChanged" ID="UnSelectedTree" runat="server" CssClass="jstree-node jstree-open jstree-last">
</asp:TreeView>
And using this function for checking boxs
function ClientSideChangeSelection(e) {
var evnt = ((window.event) ? (event) : (e));
var chkBox = evnt.srcElement || evnt.target;
// var chkBox = window.event.srcElement;
var isChecked;
var isCheckBox = false;
if (chkBox.tagName == "INPUT" && chkBox.type.toUpperCase() == "CHECKBOX") {
var treeNode = chkBox;
isChecked = treeNode.checked;
do {
chkBox = chkBox.parentElement;
} while (chkBox.tagName != "TABLE")
var firstLevel = chkBox.rows[0].cells.length;
var tableElements = chkBox.parentElement.getElementsByTagName("TABLE");
var tableElementsCount = tableElements.length;
if (tableElementsCount > 0) {
for (i = 0; i < tableElementsCount; i++) {
if (tableElements[i] == chkBox) {
i++;
isCheckBox = true;
if (i == tableElementsCount) {
return;
}
}
if (isCheckBox == true) {
var secondLevel = tableElements[i].rows[0].cells.length;
if (secondLevel > firstLevel) {
var cell = tableElements[i].rows[0].cells[secondLevel - 1];
var inputElement = cell.getElementsByTagName("INPUT");
inputElement[0].checked = isChecked;
}
else {
return;
}
}
}
}
__doPostBack("", "");
}
And finally this is my c# code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
UnSelectedTree.Attributes.Add("onclick", "ClientSideChangeSelection(event)");
}
}
protected void UnSelectedTree_SelectedNodeChanged(object sender, TreeNodeEventArgs e){
}
Aucun commentaire:
Enregistrer un commentaire