or
telerik:TreeListSelectColumn
, I need to implement the recursive selection at this way:function itemSelected(sender, args) {
var treelist = sender;
var selectedItem = args.get_item();
if(selectedItem.get_parentItem())
treelist.selectItem(selectedItem.get_parentItem());
//comment out the above line and uncomment the below one to get all child items selected functionality
//selectChildren(selectedItem);
function selectChildren(item) {
treelist.selectItem(item);
if (item.get_childItems().length > 0) {
for (var i = 0; i <
item.get_childItems
().length; i++) {
selectChildren(item.get_childItems()[i]);
}
}
}
}
<telerik:RadTreeList
runat
=
"server"
ID
=
"RadTreeList1"
DataKeyNames
=
"Id"
ParentDataKeyNames
=
"CongViecChaId"
OnItemCommand
=
"RadTreeList1_ItemCommand"
AllowMultiItemSelection
=
"True"
AllowPaging
=
"false"
AllowSorting
=
"true"
Skin
=
"Hay"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"RadTreeList1_NeedDataSource"
OnItemCreated
=
"RadTreeList1_ItemCreated"
OnItemDataBound
=
"RadTreeList1_ItemDataBound"
>
<
Columns
>
<
telerik:TreeListSelectColumn
HeaderStyle-Width
=
"40px"
UniqueName
=
"chkColum"
>
</
telerik:TreeListSelectColumn
>
<
telerik:TreeListBoundColumn
DataField
=
"Id"
HeaderText
=
"Id"
UniqueName
=
"Id"
Visible
=
"false"
>
</
telerik:TreeListBoundColumn
>
<
telerik:TreeListBoundColumn
DataField
=
"MaCongViec"
HeaderText
=
"Mã Công Việc"
UniqueName
=
"MaCongViec"
>
</
telerik:TreeListBoundColumn
>
<
telerik:TreeListBoundColumn
DataField
=
"TenCongViec"
HeaderText
=
"Tên Công Việc"
UniqueName
=
"TenCongViec"
>
</
telerik:TreeListBoundColumn
>
<
telerik:TreeListBoundColumn
DataField
=
"CongViecChaId"
HeaderText
=
"Công việc cha id"
UniqueName
=
"CongViecChaId"
Visible
=
"false"
>
</
telerik:TreeListBoundColumn
>
<
telerik:TreeListBoundColumn
DataField
=
"MoTa"
HeaderText
=
"Mô tả"
UniqueName
=
"MoTa"
>
</
telerik:TreeListBoundColumn
>
<
telerik:TreeListBoundColumn
DataField
=
"TinhTrang"
HeaderText
=
"Tình trạng"
UniqueName
=
"TinhTrang"
>
</
telerik:TreeListBoundColumn
>
</
Columns
<ClientSettings
Selecting-AllowItemSelection
=
"true"
>
<
ClientEvents
OnItemSelected
=
"itemSelected"
/>
</
ClientSettings
>
</
telerik:RadTreeList
>
<
telerik:RadTextBox
runat
=
"server"
ID
=
"txtNewPassword"
TextMode
=
"Password"
>
<
PasswordStrengthSettings
showindicator
=
"true"
minimumnumericcharacters
=
"1"
minimumsymbolcharacters
=
"0"
textstrengthdescriptionstyles
=
"RedText;RedText;GreenText;GreenText;BlueText;BlueText;"
PreferredPasswordLength
=
"8"
/>
</
telerik:RadTextBox
>
<%@ Register Assembly="Telerik.Web.UI, Version=2009.3.1314.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4"
Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<
telerik:RadTabStrip
ID
=
"rdtabEmployee"
runat
=
"server"
MultiPageID
=
"rdmpPersonal"
UnSelectChildren
=
"True"
Skin
=
"Vista"
EnableEmbeddedSkins
=
"False"
ClickSelectedTab
=
"True"
AutoPostBack
=
"True"
SelectedIndex
=
"0"
OnTabClick
=
"tabClick"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Personal"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Contact"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Salary"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Bank"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Taxes"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Residence"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Work"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"rdmpPersonal"
runat
=
"server"
>
<
telerik:RadPageView
ID
=
"rdpgPersonal"
runat
=
"server"
>
<
label
>
Demo Personal
</
label
>
</
telerik:RadPageView
>
<
telerik:RadPageView
ID
=
"rdpgContact"
runat
=
"server"
>
<
label
>
Demo Contact
</
label
>
</
telerik:RadPageView
>
<
telerik:RadPageView
ID
=
"rdpgResident"
runat
=
"server"
>
<
label
>
Resident Demo
</
label
>
</
telerik:RadPageView
>
<
telerik:RadPageView
ID
=
"rdpgWork"
runat
=
"server"
>
<
label
>
Work Demo
</
label
>
</
telerik:RadPageView
>
</
telerik:RadMultiPage
>
protected
void
tabClick(
object
sender, RadTabStripEventArgs e)
{
AddPageView(e.Tab.Text);
e.Tab.PageView.Selected =
true
;
}
private
void
AddPageView(
string
pageViewID)
{
RadPageView pageView =
new
RadPageView();
pageView.ID = pageViewID;
rdmpPersonal.PageViews.Add(pageView);
}
public class GenerateButton : GridCheckBoxColumn
{
//RadGrid will call this method when it initializes the controls inside the filtering item cells
protected override void SetupFilterControls(TableCell cell)
{
base.SetupFilterControls(cell);
cell.Controls.RemoveAt(0);
Button b = new Button();
b.ID = ("SelectDeselect"+ this.UniqueName);
b.BackColor = System.Drawing.Color.White;
b.Text = "Select/Deselect All";
string s = b.ID;
//b.OnClientClick = "clickbutton('"+s+"')";
if (s.Equals("SelectDeselectColumnNominate"))
{
b.OnClientClick = "ColumnNominateClickButton()";
}
else if(s.Equals("SelectDeselectColumnApprove"))
{
b.OnClientClick = "ColumnApproveClickButton()";
}
cell.Controls.AddAt(0, b);
cell.Controls.RemoveAt(1);
}
}
if (dataColumn.ColumnName == "ColumnNominate")
{
GenerateButton columnNominate = new GenerateButton();
RadGrid1.MasterTableView.Columns.Add(columnNominate);
columnNominate.DataField = dataColumn.ColumnName;
columnNominate.SortAscImageUrl = @"Arrow Down.jpg";
columnNominate.SortDescImageUrl = @"Arrow Up.jpg";
columnNominate.HeaderText = dataColumn.ColumnName;
}
else if (dataColumn.ColumnName == "ColumnApprove")
{
GenerateButton columnApprove = new GenerateButton();
this.RadGrid1.MasterTableView.Columns.Add(columnApprove);
columnApprove.DataField = dataColumn.ColumnName;
columnApprove.SortAscImageUrl = @"Arrow Down.jpg";
columnApprove.SortDescImageUrl = @"Arrow Up.jpg";
columnApprove.HeaderText = dataColumn.ColumnName;
}
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
CheckBox chkbxNominate = (CheckBox)item["ColumnNominate"].Controls[0];
chkbxNominate.ID = "ChkNominate";
chkbxNominate.Visible = true;
chkbxNominate.Enabled = true;
CheckBox chkbxApprove = (CheckBox)item["ColumnApprove"].Controls[0];
chkbxApprove.ID = "ChkApprove";
chkbxApprove.Visible = true;
chkbxApprove.Enabled = true;
}
}
I have a master page that has the script manager on it.I have a content page that has the follow RadajaxManager and Panels
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
UpdatePanelsRenderMode
=
"Inline"
>
</
telerik:RadAjaxManager
>
<!-- Loading Panel -->
<
telerik:RadAjaxLoadingPanel
ID
=
"DefaultAjaxLoadingPanel"
runat
=
"server"
Skin
=
"Default"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
MinDisplayTime
=
"0"
Skin
=
""
Transparency
=
"30"
BackColor
=
"#CCCCCC"
>
<
div
id
=
"MyLoadingPanel"
>
<
span
class
=
"WbHeader"
>Configuring Document...</
span
><
br
/>
<
asp:Image
ID
=
"LoadingImage"
runat
=
"server"
ImageUrl
=
"~/images/ajax-loader.gif"
></
asp:Image
>
</
div
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel2"
runat
=
"server"
MinDisplayTime
=
"0"
Skin
=
""
Transparency
=
"30"
BackColor
=
"#CCCCCC"
>
<
div
id
=
"Div1"
>
<
span
class
=
"WbHeader"
>Restructuring Document...</
span
><
br
/>
<
asp:Image
ID
=
"Image1"
runat
=
"server"
ImageUrl
=
"~/images/ajax-loader.gif"
></
asp:Image
>
</
div
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel3"
runat
=
"server"
MinDisplayTime
=
"0"
Skin
=
""
Transparency
=
"10"
BackColor
=
"#CCCCCC"
ZIndex
=
"2000"
>
<
div
id
=
"Div3"
style
=
"margin: 50px 10px 10px 10px; text-align: left"
>
<
span
class
=
"WbHeader"
>The document outline view is disabled while you are editing this
particular content block. When you have finished and saved your work, this view
will refresh to reflect your changes.</
span
>
</
div
>
</
telerik:RadAjaxLoadingPanel
>
<
div
id
=
"MainDiv"
style
=
"height:100%;width:100%;overflow:auto;"
>
<
telerik:RadSplitter
ID
=
"rsMain"
runat
=
"server"
VisibleDuringInit
=
"True"
Height
=
"100%"
Width
=
"100%"
AccessKey
=
"o"
style
=
"overflow: auto;"
>
<
telerik:RadPane
ID
=
"pOutline"
runat
=
"server"
Width
=
"26%"
CssClass
=
"VisibleScrollbar"
>
<
telerik:RadTreeView
ID
=
"OutlineTree"
runat
=
"server"
AccessKey
=
"w"
CausesValidation
=
"False"
EnableDragAndDrop
=
"True"
EnableDragAndDropBetweenNodes
=
"True"
WebServiceSettings-Path
=
"/wbTree.asmx"
WebServiceSettings-Method
=
"LoadNodes"
onclientcontextmenushowing
=
"ClientContextMenuShowing"
OnClientNodePopulating
=
"ClientNodePopulating"
OnClientNodeDropping
=
"ClientNodeDropping"
OnClientNodePopulated
=
"ClientNodePopulated"
Height
=
"99%"
OnClientNodeClicking
=
"ClientNodeClicking"
EnableViewState
=
"False"
CollapseAnimation-Type
=
"None"
ExpandAnimation-Type
=
"None"
>
<
WebServiceSettings
Method
=
"LoadNodes"
Path
=
"/wbTree.asmx"
></
WebServiceSettings
>
<
ContextMenus
>
<
telerik:RadTreeViewContextMenu
ID
=
"ElementMenu"
runat
=
"server"
EnableAutoScroll
=
"True"
>
</
telerik:RadTreeViewContextMenu
>
</
ContextMenus
>
<
ExpandAnimation
Type
=
"None"
/>
</
telerik:RadTreeView
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitBar1"
runat
=
"server"
/>
<
telerik:RadPane
ID
=
"pContent"
runat
=
"server"
Width
=
"74%"
>
<
telerik:RadAjaxPanel
id
=
"plEdit"
runat
=
"server"
EnableAJAX
=
"True"
Width
=
"99%"
LoadingPanelID
=
"DefaultAjaxLoadingPanel"
ClientEvents-OnResponseEnd
=
"plEditResponseEnd"
Height
=
"99%"
>
<
asp:HiddenField
ID
=
"SelectedIID"
Value
=
"0"
runat
=
"server"
/>
<
telerik:RadSpell
ID
=
"RadSpell1"
runat
=
"server"
IsClientID
=
"True"
ButtonType
=
"None"
EnableViewState
=
"False"
/>
<
asp:Button
ID
=
"NextButton"
runat
=
"server"
Visible
=
"false"
Text
=
"Next"
CausesValidation
=
"false"
EnableViewState
=
"false"
/>
</
telerik:RadAjaxPanel
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
</
div
>
//Called when you are attempting to click a node on the tree.
function ClientNodeClicking(sender, args) {
var Node = args.get_node();
var attrs = Node.get_attributes();
var ClickStatus = attrs.getAttribute("ClickStatus");
var IID = attrs.getAttribute("IID");
if (ClickStatus != null) {
if (ClickStatus == "None") {
args.set_cancel(true);
return;
}
}
if (IID == null || IID == "") {
args.set_cancel(true);
return;
}
Page_ValidationActive = false;
var _ajax = $find("<%=RadAjaxManager1.ClientID %>");
if (_ajax != null) {
var CmdStr = "IID=" + IID;
_ajax.ajaxRequestWithTarget("<%= plEdit.ClientID %>", CmdStr);
}
}
Protected Overrides Sub RaisePostBackEvent(ByVal source As IPostBackEventHandler, ByVal eventArgument As String)
MyBase.RaisePostBackEvent(source, eventArgument)
If TypeOf source Is RadAjaxPanel Then
''No, there is no tree!
If MyTree Is Nothing Then
Exit Sub
End If
If eventArgument.Contains("IID=") Or eventArgument.Contains("Refresh") Then
''Slight Hack for multi-page wizard controls
Session("_CurrentWizardPage") = 0
If _NodeTransformed = True Then
RadAjaxManager1.ResponseScripts.Add(String.Format("ServerSideRefreshNode('{0}');", SelectedIID.Value))
End If
End If
If eventArgument.Contains("IID=") Then
Dim _NodeStr As String = eventArgument.Substring(eventArgument.LastIndexOf("=") + 1)
If SelectedIID.Value <> _NodeStr Then
_NodeStr = _NodeStr
SelectedIID.Value = _NodeStr
BuildControls(_NodeStr, True)
End If
End If
If eventArgument.Contains("Refresh") Then
BuildControls(SelectedIID.Value, True)
End If
If eventArgument.Contains("SaveFile") Then
''Do nothing technically. We've already done the binding to the XML document in the postback at this point.
End If
If eventArgument.Contains("SaveWithValidation") Then
RadAjaxManager1.ResponseScripts.Add("ValidateXmlCallback();")
End If
If eventArgument.Contains("ValidationOnly") Then
RadAjaxManager1.ResponseScripts.Add("ValidateXmlCallback('report');")
End If
_NodeTransformed = False
End If
End Sub