This is a migrated thread and some comments may be shown as answers.

[Solved] Telerik Treeview JS issue

5 Answers 131 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Arava
Top achievements
Rank 1
Arava asked on 25 Oct 2011, 10:27 AM
Hi Team,

I have  a telerik treeview with  Checkboxes. I am using the Latest version of telerik .914(sep 14 relaase).
But even in this version also we dodnt find the fix for we  uncheck the parent node all its child nodes also should be unchecked.
But this is working only one time. Second time the Same node if  i try to uncheck. it does not uncheck its child node.
Prevouisly we were using .217 version of teleriks and we faced the same issue. We reported the issue in this table format.

 

Telerik .treeview.js   old version

Telerik.treeview.js new version

 

        nodeCheck: function (e, d) {

            c(e, this.element).each(c.proxy(function (h, i) {

                var f = c(i).closest(".t-item"),

                    g = c("> div > .t-checkbox", f),

                    j = this.element.id + "_checkedNodes",

                    h = g.find(':input[name="' + j + '.Index"]').val();

                g.find(':input[name="' + j + "[" + h + '].Text"]').remove();

                g.find(':input[name="' + j + "[" + h + '].Value"]').remove();

                g.find(":checkbox").attr({

                    checked: d ? "checked" : "",

                    value: d

                });

                if (d) {

                    c(b.treeview.getNodeInputsHtml(this.getItemValue(f), this.getItemText(f), j, h)).appendTo(g)

                }

            }, this))

        nodeCheck: function (e, d) {

            c(e, this.element).each(c.proxy(function (j, k) {

                var h = c(k).closest(".t-item"),

                    i = c("> div > .t-checkbox", h),

                    g = this.element.id + "_checkedNodes",

                    j = i.find(':input[name="' + g + '.Index"]').val(),

                    f = i.find(":checkbox");

                i.find(':input[name="' + g + "[" + j + '].Text"]').remove();

                i.find(':input[name="' + g + "[" + j + '].Value"]').remove();

                f.attr("value", d);

                if (d) {

                    f.attr("checked", "checked");

                    c(b.treeview.getNodeInputsHtml(this.getItemValue(h), this.getItemText(h), g, j)).appendTo(i)

                }

            else {
                   f.attr("checked", "");
           } 



But this fix is  still not avialble in .914.
Could you Please provide  the new Telerik version Treeview JS whcih will have this fix properly fixed.
Kindly Respond as  soon as possible.

Thanks ,
Shilpa.

5 Answers, 1 is accepted

Sort by
0
Alex Gyoshev
Telerik team
answered on 27 Oct 2011, 09:27 AM
Hello Arava,

We could not reproduce the issue locally. Please send a project that shows the issue.

Greetings,
Alex Gyoshev
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the Telerik Extensions for ASP.MET MVC, subscribe to their blog feed now
0
Arava
Top achievements
Rank 1
answered on 03 Nov 2011, 07:29 AM
Hi Alex,

I am facing this issue of checking the parent check box does not check the child as well as unchecking the checkbox  does not uncheck.It works for first time and when i second time uncheck it it does not work.
I am attaching the files that am using currently.
 Please let me the compatibility for  for 914 version  of Telerik.treeview.min.js.

Thanks,
Shilpa
0
Arava
Top achievements
Rank 1
answered on 03 Nov 2011, 07:33 AM
(function(c){var b=c.telerik;b.scripts.push("telerik.treeview.js");function a(d){d.find(".t-plus").each(function(){var e=c(this.parentNode);e.parent().data("loaded",e.next(".t-group").length>0)})}b.treeview=function(e,f){this.element=e;var g=c(e);c.extend(this,f);var d=".t-in:not(.t-state-selected,.t-state-disabled)";c(".t-in.t-state-selected",e).live("mouseenter",b.preventDefault);g.delegate(d,"mouseenter",b.hover).delegate(d,"mouseleave",b.leave).delegate(d,"click",b.delegate(this,this.nodeSelect)).delegate("div:not(.t-state-disabled) .t-in","dblclick",b.delegate(this,this.nodeClick)).delegate(":checkbox","click",b.delegate(this,this.checkboxClick)).delegate(".t-plus, .t-minus","click",b.delegate(this,this.nodeClick));if(this.isAjax()){a(g)}if(this.dragAndDrop){b.bind(this,{nodeDragStart:this.onNodeDragStart,nodeDragging:this.onNodeDragging,nodeDragCancelled:this.onNodeDragCancelled,nodeDrop:this.onNodeDrop,nodeDropped:this.onNodeDropped});(function(j){var h=c("<div class='t-drop-clue' />");var m;function i(n){if(b.trigger(j.element,"nodeDragStart",{item:n.$draggable.closest(".t-item")[0]})){return false}h.appendTo(j.element)}function k(v){var q;m=c(v.target);if(j.dragAndDrop.dropTargets&&c(v.target).closest(j.dragAndDrop.dropTargets).length>0){q="t-add"}else{if(!c.contains(j.element,v.target)){q="t-denied"}else{if(c.contains(v.$draggable.closest(".t-item")[0],v.target)){q="t-denied"}else{q="t-insert-middle";h.css("visibility","visible");var p=m.closest(".t-top,.t-mid,.t-bot");if(p.length>0){var u=p.outerHeight();var s=p.offset().top;var x=m.closest(".t-in");var w=u/(x.length>0?4:2);var t=v.pageY<(s+w);var n=(s+u-w)<v.pageY;var o=x.length>0&&!t&&!n;x.toggleClass("t-state-hover",o);h.css("visibility",o?"hidden":"visible");if(o){q="t-add"}else{var r=p.position();r.top+=t?0:u;h.css(r)[t?"prependTo":"appendTo"](m.closest(".t-item").find("> div:first"));if(t&&p.hasClass("t-top")){q="t-insert-top"}if(n&&p.hasClass("t-bot")){q="t-insert-bottom"}}}}}}b.trigger(j.element,"nodeDragging",{pageY:v.pageY,pageX:v.pageX,dropTarget:v.target,status:q.substring(2),setStatusClass:function(y){q=y},item:v.$draggable.closest(".t-item")[0]});if(q.indexOf("t-insert")!=0){h.css("visibility","hidden")}b.dragCueStatus(v.$cue,q)}function l(u){if(u.keyCode==27){b.trigger(j.element,"nodeDragCancelled",{item:u.$draggable.closest(".t-item")[0]})}else{var q="over",o;if(h.css("visibility")=="visible"){q=h.prevAll(".t-in").length>0?"after":"before";o=h.closest(".t-item").find("> div")}else{if(m){o=m.closest(".t-top,.t-mid,.t-bot")}}var v=!u.$cue.find(".t-drag-status").hasClass("t-denied"),p=b.trigger(j.element,"nodeDrop",{isValid:v,dropTarget:u.target,destinationItem:o.parent()[0],dropPosition:q,item:u.$draggable.closest(".t-item")[0]});if(!v){return false}if(p||!c.contains(j.element,u.target)){return !p}var s=u.$draggable.closest(".t-top,.t-mid,.t-bot");var t=s.parent();var x=s.closest(".t-group");if(c.contains(t[0],u.target)){return false}if(t.hasClass("t-last")){t.removeClass("t-last").prev().addClass("t-last").find("> div").removeClass("t-top t-mid").addClass("t-bot")}if(h.css("visibility")=="visible"){o.parent()[q](t)}else{var n=o.next(".t-group");if(n.length===0){n=c('<ul class="t-group" />').appendTo(o.parent());if(!j.isAjax()){o.prepend('<span class="t-icon t-minus" />')}else{n.hide();j.nodeToggle(null,o.parent(),true);n.show()}}n.append(t);if(o.find("> .t-icon").hasClass("t-plus")){j.nodeToggle(null,o.parent(),true)}}var r=t.parents(".t-group").length;function w(z){var A=z.prev().length===0;var y=z.next().length===0;z.toggleClass("t-first",A&&r===1).toggleClass("t-last",y).find("> div").toggleClass("t-top",A&&!y).toggleClass("t-mid",!A&&!y).toggleClass("t-bot",y)}w(t);w(t.prev());w(t.next());if(x.children().length===0){x.prev("div").find(".t-plus,.t-minus").remove();x.remove()}b.trigger(j.element,"nodeDropped",{destinationItem:o.closest(".t-item")[0],dropPosition:q,item:s.parent(".t-item")[0]});return false}}new b.draggable({owner:j.element,selector:"div:not(.t-state-disabled) .t-in",scope:j.element.id,cue:function(n){return b.dragCue(n.$draggable.text())},start:i,drag:k,stop:l,destroy:function(n){h.remove();n.$cue.remove()}})})(this)}b.bind(this,{expand:this.onExpand,collapse:this.onCollapse,select:c.proxy(function(h){if(h.target==this.element&&this.onSelect){this.onSelect(h)}},this),checked:this.onChecked,error:this.onError,load:this.onLoad,dataBinding:this.onDataBinding,dataBound:this.onDataBound})};b.treeview.prototype={expand:function(d){c(d,this.element).each(c.proxy(function(g,h){var f=c(h);var e=f.find("> .t-group, > .t-content");if((e.length>0&&!e.is(":visible"))||this.isAjax()){this.nodeToggle(null,f)}},this))},collapse:function(d){c(d,this.element).each(c.proxy(function(g,h){var f=c(h),e=f.find("> .t-group, > .t-content");if(e.length>0&&e.is(":visible")){this.nodeToggle(null,f)}},this))},enable:function(d){this.toggle(d,true)},disable:function(d){this.toggle(d,false)},toggle:function(e,d){c(e,this.element).each(c.proxy(function(g,h){var f=c(h),i=!f.find("> .t-group, > .t-content").is(":visible");if(!d){this.collapse(f);i=true}f.find("> div > .t-in").toggleClass("t-state-default",d).toggleClass("t-state-disabled",!d).end().find("> div > .t-checkbox > :checkbox").attr("disabled",d?"":"disabled").end().find("> div > .t-icon").toggleClass("t-plus",i&&d).toggleClass("t-plus-disabled",i&&!d).toggleClass("t-minus",!i&&d).toggleClass("t-minus-disabled",!i&&!d)},this))},reload:function(e){var d=this;c(e).each(function(){var f=c(this);f.find(".t-group").remove();d.ajaxRequest(f)})},shouldNavigate:function(e){var d=c(e).closest(".t-item").find("> .t-content, > .t-group");var f=c(e).attr("href");return !((f&&(f.charAt(f.length-1)=="#"||f.indexOf("#"+this.element.id+"-")!=-1))||(d.length>0&&d.children().length==0))},nodeSelect:function(g,f){if(!this.shouldNavigate(f)){g.preventDefault()}var d=c(f);if(!d.hasClass(".t-state-selected")&&!b.trigger(this.element,"select",{item:d.closest(".t-item")[0]})){c(".t-in",this.element).removeClass("t-state-hover t-state-selected");d.addClass("t-state-selected")}},nodeToggle:function(i,f,h){if(f.find(".t-minus").length==0&&f.find(".t-plus").length==0){return}if(i!=null){i.preventDefault()}if(f.data("animating")||f.find("> div > .t-in").hasClass("t-state-disabled")){return}f.data("animating",!h);var d=f.find(">.t-group, >.t-content, >.t-animation-container>.t-group, >.t-animation-container>.t-content"),g=!d.is(":visible");if(d.children().length>0&&f.data("loaded")!==false&&!b.trigger(this.element,g?"expand":"collapse",{item:f[0]})){f.find("> div > .t-icon").toggleClass("t-minus",g).toggleClass("t-plus",!g);if(!h){b.fx[g?"play":"rewind"](this.effects,d,{direction:"bottom"},function(){f.data("animating",false)})}else{d[g?"show":"hide"]()}}else{if(g&&this.isAjax()&&(d.length==0||f.data("loaded")===false)){if(!b.trigger(this.element,g?"expand":"collapse",{item:f[0]})){this.ajaxRequest(f)}}}},nodeClick:function(h,g){var f=c(g),d=f.closest(".t-item");if(f.hasClass("t-plus-disabled")||f.hasClass("t-minus-disabled")){return}this.nodeToggle(h,d)},isAjax:function(){return this.ajax||this.ws||this.onDataBinding},url:function(d){return(this.ajax||this.ws)[d]},ajaxOptions:function(e,h){var f={type:"POST",dataType:"text",error:c.proxy(function(j,i){if(b.ajaxError(this.element,"error",j,i)){return}if(i=="parsererror"){alert("Error! The requested URL did not return JSON.")}},this),success:c.proxy(function(i){i=eval("("+i+")");i=i.d||i;this.dataBind(e,i)},this)};f=c.extend(f,h);var g=this.ws?f.data.node={}:f.data;if(e.hasClass("t-item")){g[this.queryString.value]=this.getItemValue(e);g[this.queryString.text]=this.getItemText(e);var d=e.find(".t-checkbox:first :checkbox");if(d.length){g[this.queryString.checked]=d.is(":checked")}}if(this.ws){f.data=b.toJson(f.data);f.contentType="application/json; charset=utf-8"}return f},ajaxRequest:function(f){f=f||c(this.element);var d={item:f[0]};if(b.trigger(this.element,"dataBinding",d)||(!this.ajax&&!this.ws)){return}f.data("loadingIconTimeout",setTimeout(function(){f.find("> div > .t-icon").addClass("t-loading")},100));c.ajax(this.ajaxOptions(f,{data:c.extend({},d.data),url:this.url("selectUrl")}))},bindTo:function(d){this.dataBind(this.element,d)},dataBind:function(d,h){d=c(d);if(h.length==0){c(".t-icon",d).hide();return}var g=new b.stringBuilder(),e=d.find("> .t-group"),f=e.length==0;b.treeview.getGroupHtml({data:h,html:g,isAjax:this.isAjax(),isFirstLevel:d.hasClass("t-treeview"),showCheckBoxes:this.showCheckBox,groupLevel:d.find('> div > .t-checkbox :input[name="'+this.element.id+'_checkedNodes.Index"]').val(),isExpanded:(f?d.eq(0).is(".t-treeview")?true:h[0].Expanded:false),renderGroup:f,elementId:this.element.id});d.data("animating",true);if(e.length>0&&d.data("loaded")===false){c(g.string()).prependTo(e)}else{if(e.length>0&&d.data("loaded")!==false){e.html(g.string())}else{if(e.length==0){e=c(g.string()).appendTo(d)}}}b.fx.play(this.effects,e,{direction:"bottom"},function(){d.data("animating",false)});clearTimeout(d.data("loadingIconTimeout"));if(d.hasClass("t-item")){d.data("loaded",true).find(".t-icon:first").removeClass("t-loading").removeClass("t-plus").addClass("t-minus")}if(this.isAjax()){a(d)}b.trigger(this.element,"dataBound",{item:d[0]})},checkboxClick:function(h,f){var d=c(f).is(":checked");var g=b.trigger(this.element,"checked",{item:c(f).closest(".t-item")[0],checked:d});if(!g){this.nodeCheck(f,d)}else{h.preventDefault()}return g},nodeCheck:function(e,d){c(e,this.element).each(c.proxy(function(j,k){var h=c(k).closest(".t-item"),i=c("> div > .t-checkbox",h),g=this.element.id+"_checkedNodes",j=i.find(':input[name="'+g+'.Index"]').val(),f=i.find(":checkbox");i.find(':input[name="'+g+"["+j+'].Text"]').remove();i.find(':input[name="'+g+"["+j+'].Value"]').remove();f.attr("value",d);if(d){f.attr("checked","checked");c(b.treeview.getNodeInputsHtml(this.getItemValue(h),this.getItemText(h),g,j)).appendTo(i)}},this))},getItemText:function(d){return c(d).find("> div > .t-in").text()},getItemValue:function(d){return c(d).find('>div>:input[name="itemValue"]').val()||this.getItemText(d)}};c.extend(b.treeview,{getNodeInputsHtml:function(g,e,f,d){return new b.stringBuilder().cat('<input type="hidden" value="').cat(g).cat('" name="'+f+"[").cat(d).cat('].Value" class="t-input">').cat('<input type="hidden" value="').cat(e).cat('" name="'+f+"[").cat(d).cat('].Text" class="t-input">').string()},getItemHtml:function(e){var m=e.item,h=e.html,i=e.isFirstLevel,f=e.groupLevel,g=e.itemIndex,d=e.itemsCount,l=new b.stringBuilder().cat(f).catIf(":",f).cat(g).string();h.cat('<li class="t-item').catIf(" t-first",i&&g==0).catIf(" t-last",g==d-1).cat('">').cat('<div class="').catIf("t-top ",i&&g==0).catIf("t-top",g!=d-1&&g==0).catIf("t-mid",g!=d-1&&g!=0).catIf("t-bot",g==d-1).cat('">');if((e.isAjax&&m.LoadOnDemand)||(m.Items&&m.Items.length>0)){h.cat('<span class="t-icon').catIf(" t-plus",m.Expanded!==true).catIf(" t-minus",m.Expanded===true).catIf("-disabled",m.Enabled===false).cat('"></span>')}if(e.showCheckBoxes&&m.Checkable!==false){var j=e.elementId+"_checkedNodes";h.cat('<span class="t-checkbox">').cat('<input type="hidden" value="').cat(l).cat('" name="').cat(j).cat(".Index").cat('" class="t-input"/>').cat('<input type="checkbox" value="').cat(m.Checked===true?"True":"False").cat('" class="t-input').cat('" name="').cat(j).cat("[").cat(l).cat('].Checked"').catIf(' disabled="disabled"',m.Enabled===false).catIf(' checked="checked"',m.Checked).cat("/>");if(m.Checked){h.cat(b.treeview.getNodeInputsHtml(m.Value,m.Text,j,l))}h.cat("</span>")}var k=m.NavigateUrl||m.Url;h.cat(k?'<a href="'+k+'" class="t-link ':'<span class="').cat("t-in").catIf(" t-state-disabled",m.Enabled===false).catIf(" t-state-selected",m.Selected===true).cat('">');if(m.ImageUrl!=null){h.cat('<img class="t-image" alt="" src="').cat(m.ImageUrl).cat('" />')}if(m.SpriteCssClasses!=null){h.cat('<span class="t-sprite ').cat(m.SpriteCssClasses).cat('"></span>')}h.catIf(m.Text,m.Encoded===false).catIf(m.Text.replace(/</g,"&lt;").replace(/>/g,"&gt;"),m.Encoded!==false).cat(k?"</a>":"</span>");if(m.Value){h.cat('<input type="hidden" class="t-input" name="itemValue" value="').cat(m.Value).cat('" />')}h.cat("</div>");if(m.Items&&m.Items.length>0){b.treeview.getGroupHtml({data:m.Items,html:h,isAjax:e.isAjax,isFirstLevel:false,showCheckBoxes:e.showCheckBoxes,groupLevel:l,isExpanded:m.Expanded,elementId:e.elementId})}h.cat("</li>")},getGroupHtml:function(e){var d=e.data;var g=e.html;var j=e.isFirstLevel;var k=e.renderGroup;if(k!==false){g.cat('<ul class="t-group').catIf(" t-treeview-lines",j).cat('"').catIf(' style="display:none"',e.isExpanded!==true).cat(">")}if(d&&d.length>0){var l=b.treeview.getItemHtml;for(var f=0,h=d.length;f<h;f++){l({item:d[f],html:g,isAjax:e.isAjax,isFirstLevel:j,showCheckBoxes:e.showCheckBoxes,groupLevel:e.groupLevel,itemIndex:f,itemsCount:h,elementId:e.elementId})}}if(k!==false){g.cat("</ul>")}}});c.fn.tTreeView=function(d){return b.create(this,{name:"tTreeView",init:function(e,f){return new b.treeview(e,f)},options:d,success:function(e){if(e.isAjax()&&c(e.element).find(".t-item").length==0){e.ajaxRequest()}}})};c.fn.tTreeView.defaults={effects:b.fx.property.defaults("height"),queryString:{text:"Text",value:"Value",checked:"Checked"}}})(jQuery);
0
Arava
Top achievements
Rank 1
answered on 03 Nov 2011, 07:34 AM
And this is the file that i am using

<%

 

@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MS.IT.HRE.Performance.Web.Models.CommitmentLibraryAdmin.ManageCommitmentTemplateViewModel>" %>

<

 

 

div style="height: 600px; overflow: scroll; width:249px;text-align:left;">

<

 

 

div style="font-family:Calibri; font-size:11px;"><input type="checkbox" id="selectall" checked="checked"/>&nbsp;&nbsp;Select All</div>

 

<% using (Html.BeginForm())

{

List<TreeViewItem> checkedNodes = ViewData["TreeView1_CheckedNodes"] as List<TreeViewItem>;

Dictionary<String, object> dic = new Dictionary<string, object>();

dic.Add("id", "true");

%>

<%

 

= Html.Telerik()

.TreeView()

.HtmlAttributes(new { style = "overflow:visible;font-family:Calibri; font-size:11px;" })

.ShowCheckBox(true)

.Name("TreeView1")

.ClientEvents(events => events

.OnChecked("onChecked")

//.OnLoad("onLoad")

)

.BindTo(Model.Profesions, (item, profession) =>

{

item.Text = profession.Description;

item.Value = profession.ProfessionId.ToString();

item.LoadOnDemand = profession.Disciplines.Count > 0;

item.Checked = true;

}).DataBinding(dataBinding => dataBinding.Ajax().Enabled(true).Select("_AjaxLoading", "ManageCommitmentTemplate", new { periodid = Convert.ToInt32(ViewData["SelectedPeriod"]) }))%>

 

</div>

<% } %>

 

 

 

<script language="javascript",type="text/javascript">

 

$(

 

function () {

$(

 

"#selectall").click(function () {

 

var checkAll = true;

 

if ($(this).is(":checked"))

{

 

var treeView = $('#TreeView1').data('tTreeView');

 

var allCheckboxes = $('#TreeView1').find("li").find('> div > .t-checkbox :checkbox');

$.each(allCheckboxes,

 

function (index, checkbox)

{

$(checkbox).attr(

 

'checked', checkAll ? true : false);

 

// treeView.checkboxClick("click", checkbox);

});

 

}

 

else

{

$(

 

'#TreeView1').find("li").find('> div > .t-checkbox :checkbox').removeAttr("checked");

}

});

});

 

 

 

function treeView() {

 

return $('#TreeView1').data('tTreeView');

}

 

 

function ParseNodes(nodeItem) {

 

var nodeValue = $('.t-checkbox > .t-input:hidden', nodeItem)[0].attributes('value').value;

 

var nodeParts = nodeValue.split(':');

nodeObj =

 

new Object;

 

//Clicked on Profession

 

if (nodeParts.length == 1) {

nodeObj.Type =

 

'P';

nodeObj.ProfessionId = nodeParts[0];

nodeObj.DisciplineId =

 

null;

nodeObj.StandardTitleId =

 

null;

 

return nodeObj;

}

 

if (nodeParts.length == 2) {

nodeObj.Type =

 

'D';

nodeObj.ProfessionId = nodeParts[0];

nodeObj.DisciplineId = nodeParts[1];

nodeObj.StandardTitleId =

 

null;

 

return nodeObj;

}

 

if (nodeParts.length == 3) {

nodeObj.Type =

 

'S';

nodeObj.ProfessionId = nodeParts[0];

nodeObj.DisciplineId = nodeParts[1];

nodeObj.StandardTitleId = nodeParts[2];

 

return nodeObj;

}

 

return nodeObj;

}

 

 

function workOnParent(nodeObj, checked) {

 

if (nodeObj.Type == 'D') {

 

var checked = 0;

$(

 

'> ul > li > ul > li > div > .t-checkbox > input[value*="' + nodeObj.ProfessionId + ':"]', treeView().element).each(

 

function (index, value) {

 

if (value.nextSibling.checked)

checked = 1;

}

)

;

 

if (checked == 1) {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

true);

}

 

else {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

false);

}

}

 

else if (nodeObj.Type == 'S') {

 

//check if all ST's are in same condition

 

var inputFilter = nodeObj.ProfessionId + ':' + nodeObj.DisciplineId;

 

var stChecked = 0

$(

 

'> ul > li > ul > li > ul > li > div > .t-checkbox > input[value*="' + inputFilter.toString() + ':"]', treeView().element).each(

 

function (index, value) {

 

if (value.nextSibling.checked)

stChecked = 1;

}

)

 

if (stChecked == 1) {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

true);

 

var discipline = $('> ul > li > ul > li > div > .t-checkbox > input[value="' + inputFilter + '"]', treeView().element)[0];

treeView().nodeCheck(discipline,

 

true);

}

 

else {

 

var discipline = $('> ul > li > ul > li > div > .t-checkbox > input[value="' + inputFilter + '"]', treeView().element)[0];

treeView().nodeCheck(discipline,

 

false);

 

//Check if all the disciplines are unchecked

 

var disChecked = 0;

$(

 

'> ul > li > ul > li > div > .t-checkbox > input[value*="' + nodeObj.ProfessionId + ':"]', treeView().element).each(

 

function (index, value) {

 

if (value.nextSibling.checked)

disChecked = 1;

}

)

 

if (disChecked == 1) {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

true);

}

 

else {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

false);

}

 

 

}

 

}

 

 

}

 

 

function onChecked(e) {

 

 

var nodeObj = ParseNodes(e.item.innerHTML);

 

if (e.checked == false) {

$(

 

"#selectall").attr('checked',false);

}

 

//Acted on Profession check boxes

 

if (nodeObj.Type == 'P') {

 

// Repeat the Action on Disciplines

$(

 

"> ul > li > ul > li", treeView().element).each(

 

function (Index) {

 

var item = $("> ul > li > ul > li", treeView().element)[Index];

 

var nodesubObj = ParseNodes(item.innerHTML);

 

//Only those disciplines that are under select profession node.

 

if (nodesubObj.ProfessionId == nodeObj.ProfessionId)

treeView().nodeCheck(item, e.checked);

}

)

 

// Repeat the Action on STs

$(

 

"> ul > li > ul > li > ul > li", treeView().element).each(

 

function (Index) {

 

var item = $("> ul > li > ul > li > ul > li", treeView().element)[Index];

 

var nodesubObj = ParseNodes(item.innerHTML);

 

//Only those STs that are under selected profession node.

 

if (nodesubObj.ProfessionId == nodeObj.ProfessionId)

treeView().nodeCheck(item, e.checked);

 

 

}

)

}

 

//Acted on Discipline check boxes

 

else if (nodeObj.Type == 'D') {

 

// Repeat the Action on STs

$(

 

"> ul > li > ul > li > ul > li", treeView().element).each(

 

function (Index) {

 

var item = $("> ul > li > ul > li > ul > li", treeView().element)[Index];

 

var nodesubObj = ParseNodes(item.innerHTML);

 

//Only those STs that are under selected profession node.

 

if ((nodesubObj.DisciplineId == nodeObj.DisciplineId) && (nodesubObj.ProfessionId == nodeObj.ProfessionId))

treeView().nodeCheck(item, e.checked);

}

)

workOnParent(nodeObj, e.checked);

}

 

else if (nodeObj.Type == 'S') {

workOnParent(nodeObj, e.checked);

}

}

// function onLoad(e) {

//

// var nodeItem = e.item.innerHTML;

// var nodeValue = $('.t-checkbox > .t-input:hidden', nodeItem)[0].attributes('value').value;

// if (nodeValue == null)

// {

// $('#selectall').hide();

// }

// else {

// $('#selectall').show();

// }

// }

</

 

 

script>

0
Arava
Top achievements
Rank 1
answered on 03 Nov 2011, 07:35 AM

<%

 

@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MS.IT.HRE.Performance.Web.Models.CommitmentLibraryAdmin.ManageCommitmentTemplateViewModel>" %>

<

 

 

div style="height: 600px; overflow: scroll; width:249px;text-align:left;">

<

 

 

div style="font-family:Calibri; font-size:11px;"><input type="checkbox" id="selectall" checked="checked"/>&nbsp;&nbsp;Select All</div>

 

<% using (Html.BeginForm())

{

List<TreeViewItem> checkedNodes = ViewData["TreeView1_CheckedNodes"] as List<TreeViewItem>;

Dictionary<String, object> dic = new Dictionary<string, object>();

dic.Add("id", "true");

%>

<%

 

= Html.Telerik()

.TreeView()

.HtmlAttributes(new { style = "overflow:visible;font-family:Calibri; font-size:11px;" })

.ShowCheckBox(true)

.Name("TreeView1")

.ClientEvents(events => events

.OnChecked("onChecked")

//.OnLoad("onLoad")

)

.BindTo(Model.Profesions, (item, profession) =>

{

item.Text = profession.Description;

item.Value = profession.ProfessionId.ToString();

item.LoadOnDemand = profession.Disciplines.Count > 0;

item.Checked = true;

}).DataBinding(dataBinding => dataBinding.Ajax().Enabled(true).Select("_AjaxLoading", "ManageCommitmentTemplate", new { periodid = Convert.ToInt32(ViewData["SelectedPeriod"]) }))%>

 

</div>

<% } %>

 

 

 

<script language="javascript",type="text/javascript">

 

$(

 

function () {

$(

 

"#selectall").click(function () {

 

var checkAll = true;

 

if ($(this).is(":checked"))

{

 

var treeView = $('#TreeView1').data('tTreeView');

 

var allCheckboxes = $('#TreeView1').find("li").find('> div > .t-checkbox :checkbox');

$.each(allCheckboxes,

 

function (index, checkbox)

{

$(checkbox).attr(

 

'checked', checkAll ? true : false);

 

// treeView.checkboxClick("click", checkbox);

});

 

}

 

else

{

$(

 

'#TreeView1').find("li").find('> div > .t-checkbox :checkbox').removeAttr("checked");

}

});

});

 

 

 

function treeView() {

 

return $('#TreeView1').data('tTreeView');

}

 

 

function ParseNodes(nodeItem) {

 

var nodeValue = $('.t-checkbox > .t-input:hidden', nodeItem)[0].attributes('value').value;

 

var nodeParts = nodeValue.split(':');

nodeObj =

 

new Object;

 

//Clicked on Profession

 

if (nodeParts.length == 1) {

nodeObj.Type =

 

'P';

nodeObj.ProfessionId = nodeParts[0];

nodeObj.DisciplineId =

 

null;

nodeObj.StandardTitleId =

 

null;

 

return nodeObj;

}

 

if (nodeParts.length == 2) {

nodeObj.Type =

 

'D';

nodeObj.ProfessionId = nodeParts[0];

nodeObj.DisciplineId = nodeParts[1];

nodeObj.StandardTitleId =

 

null;

 

return nodeObj;

}

 

if (nodeParts.length == 3) {

nodeObj.Type =

 

'S';

nodeObj.ProfessionId = nodeParts[0];

nodeObj.DisciplineId = nodeParts[1];

nodeObj.StandardTitleId = nodeParts[2];

 

return nodeObj;

}

 

return nodeObj;

}

 

 

function workOnParent(nodeObj, checked) {

 

if (nodeObj.Type == 'D') {

 

var checked = 0;

$(

 

'> ul > li > ul > li > div > .t-checkbox > input[value*="' + nodeObj.ProfessionId + ':"]', treeView().element).each(

 

function (index, value) {

 

if (value.nextSibling.checked)

checked = 1;

}

)

;

 

if (checked == 1) {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

true);

}

 

else {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

false);

}

}

 

else if (nodeObj.Type == 'S') {

 

//check if all ST's are in same condition

 

var inputFilter = nodeObj.ProfessionId + ':' + nodeObj.DisciplineId;

 

var stChecked = 0

$(

 

'> ul > li > ul > li > ul > li > div > .t-checkbox > input[value*="' + inputFilter.toString() + ':"]', treeView().element).each(

 

function (index, value) {

 

if (value.nextSibling.checked)

stChecked = 1;

}

)

 

if (stChecked == 1) {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

true);

 

var discipline = $('> ul > li > ul > li > div > .t-checkbox > input[value="' + inputFilter + '"]', treeView().element)[0];

treeView().nodeCheck(discipline,

 

true);

}

 

else {

 

var discipline = $('> ul > li > ul > li > div > .t-checkbox > input[value="' + inputFilter + '"]', treeView().element)[0];

treeView().nodeCheck(discipline,

 

false);

 

//Check if all the disciplines are unchecked

 

var disChecked = 0;

$(

 

'> ul > li > ul > li > div > .t-checkbox > input[value*="' + nodeObj.ProfessionId + ':"]', treeView().element).each(

 

function (index, value) {

 

if (value.nextSibling.checked)

disChecked = 1;

}

)

 

if (disChecked == 1) {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

true);

}

 

else {

 

var profession = $("> ul > li", treeView().element)[nodeObj.ProfessionId];

treeView().nodeCheck(profession,

 

false);

}

 

 

}

 

}

 

 

}

 

 

function onChecked(e) {

 

 

var nodeObj = ParseNodes(e.item.innerHTML);

 

if (e.checked == false) {

$(

 

"#selectall").attr('checked',false);

}

 

//Acted on Profession check boxes

 

if (nodeObj.Type == 'P') {

 

// Repeat the Action on Disciplines

$(

 

"> ul > li > ul > li", treeView().element).each(

 

function (Index) {

 

var item = $("> ul > li > ul > li", treeView().element)[Index];

 

var nodesubObj = ParseNodes(item.innerHTML);

 

//Only those disciplines that are under select profession node.

 

if (nodesubObj.ProfessionId == nodeObj.ProfessionId)

treeView().nodeCheck(item, e.checked);

}

)

 

// Repeat the Action on STs

$(

 

"> ul > li > ul > li > ul > li", treeView().element).each(

 

function (Index) {

 

var item = $("> ul > li > ul > li > ul > li", treeView().element)[Index];

 

var nodesubObj = ParseNodes(item.innerHTML);

 

//Only those STs that are under selected profession node.

 

if (nodesubObj.ProfessionId == nodeObj.ProfessionId)

treeView().nodeCheck(item, e.checked);

 

 

}

)

}

 

//Acted on Discipline check boxes

 

else if (nodeObj.Type == 'D') {

 

// Repeat the Action on STs

$(

 

"> ul > li > ul > li > ul > li", treeView().element).each(

 

function (Index) {

 

var item = $("> ul > li > ul > li > ul > li", treeView().element)[Index];

 

var nodesubObj = ParseNodes(item.innerHTML);

 

//Only those STs that are under selected profession node.

 

if ((nodesubObj.DisciplineId == nodeObj.DisciplineId) && (nodesubObj.ProfessionId == nodeObj.ProfessionId))

treeView().nodeCheck(item, e.checked);

}

)

workOnParent(nodeObj, e.checked);

}

 

else if (nodeObj.Type == 'S') {

workOnParent(nodeObj, e.checked);

}

}

// function onLoad(e) {

//

// var nodeItem = e.item.innerHTML;

// var nodeValue = $('.t-checkbox > .t-input:hidden', nodeItem)[0].attributes('value').value;

// if (nodeValue == null)

// {

// $('#selectall').hide();

// }

// else {

// $('#selectall').show();

// }

// }

</

 

 

script>

Tags
TreeView
Asked by
Arava
Top achievements
Rank 1
Answers by
Alex Gyoshev
Telerik team
Arava
Top achievements
Rank 1
Share this question
or