I'm currently evaluating the TreeView for the following Scenario:
So I want to load only the root and the first sublevel of items and then lazy load items as nodes are expanded. My Questions:
@model List<
Project.Models.VW_VisitasPorNumeroVisitas
>
@{
ViewBag.Title = "Index";
}
<
h2
>Visitas por Numero de Visitas</
h2
>
@(Html.Telerik().Grid(Model)
.Name("RadGrid1")
.Sortable()
.Filterable()
.Pageable()
.Footer(true)
.NoRecordsTemplate("No hay registros")
.Columns(columns =>
{
columns.Bound(o => o.NumVisitas)
.Title("Numero de Visitas")
.Aggregate(agg => agg.Sum())
.FooterTemplate(@<
text
> Visitas Totales: <
span
>@item.Sum</
span
> </
text
>);
columns.Bound(o => o.TotalVisitas)
.Title("Cantidad de Visitas");
columns.Bound(o => o.NumVisitas)
.Title("% Visitas");
})
)
public
ActionResult Index()
{
var visitasPorNum = from a
in
db.VW_VisitasPorNumeroVisitas
select a;
return
View(visitasPorNum.ToList());
}
<
telerik:RadListBox ID="PageHierarchies" runat="server" Width="200px" Height="200px"
TransferToID="ColumnHierarchies" AllowReorder="true" AutoPostBackOnReorder="false"
AllowTransfer="true" AutoPostBackOnTransfer="false" EnableDragAndDrop="true"
AutoPostBack="false" OnClientDragging="DraggingItem" OnClientTransferred="ItemTransferrd" AllowAutomaticUpdates="true" EnableViewState="true" PersistClientChanges=true >
<ButtonSettings ShowReorder="false" ShowTransfer="false" ShowTransferAll="false" />
</telerik:RadListBox>
Javascipt code to add attributes (higlighted in italic bold)
<
script type="text/javascript">
//<![CDATA[
var columnHirachcy;
var rowHirachcy;
var pageHirachcy;
var dimname;
var dimID;
var infosetname;
var strParms;
function
pageLoad(sender)
{
var listboxItem;
var membersCount;
var items;
var objJson;
columnHirachcy = $find(
"<%= ColumnHierarchies.ClientID %>");
rowHirachcy = $find(
"<%= RowHierarchies.ClientID %>");
pageHirachcy = $find(
"<%= PageHierarchies.ClientID %>");
objJson=window.top.GetIFrame().document[
'report1_json'];
//Column Hiraarchy
infosetname=objJson[0].name;
var infosetObj = window.top.getInfoSetByName(infosetname);
for(axisIndex=0;axisIndex<=2;axisIndex++)
{
switch(axisIndex)
{
case 0:
items=columnHirachcy;
break;
case 1:
items=rowHirachcy;
break;
case 2:
items=pageHirachcy;
break;
}
var dimCollection = infosetObj['axis' + axisIndex];
for(i=0;i<dimCollection.length;i++)
{
dimID = dimCollection[i].uname;
dimName = dimCollection[i].name;
membersCount =window.top.getMembersCount(infosetname,dimName,axisIndex,i);
var listboxItem =new Telerik.Web.UI.RadListBoxItem();
listboxItem.set_text(dimName +
"[" + membersCount + "]");
listboxItem.set_value(dimID);
listboxItem.set_selected(
false);
listboxItem.set_imageUrl(
"../Images/Filter.gif");
items.trackChanges();
items.get_items().add(listboxItem);
items.getItem(i).get_imageElement().setAttribute(
"alt",dimName);
items.getItem(i).get_imageElement().setAttribute(
"infosetName",infosetname);
items.getItem(i).get_imageElement().setAttribute(
"dimName",dimName);
items.getItem(i).get_imageElement().setAttribute(
"dimID",dimID);
items.getItem(i).get_imageElement().setAttribute(
"PivotingMode","Full");
items.getItem(i).get_imageElement().setAttribute(
"Hirarchy",listboxItem);
items.getItem(i).get_imageElement().onclick=
function(){
window.top.openSelectorForPivoting(
this.getAttribute('infosetName'),this.getAttribute('dimName'),this.getAttribute('dimID'),this.getAttribute('PivotingMode'),this.getAttribute('Hirarchy'));
};
items.commitChanges();
}
}
return false;
}
<
table
border
=
"0"
cellpadding
=
"0"
cellspacing
=
"0"
style
=
"table-layout: fixed; width: 100%;"
>
<
tr
>
<
td
>
<
table
border
=
"0"
cellpadding
=
"0"
cellspacing
=
"0"
style
=
"table-layout: fixed; width: 100%;"
>
<
tr
>
<
td
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
telerik:RadGrid
ID
=
"CWGrid"
runat
=
"server"
Width
=
"100%"
OnNeedDataSource
=
"CWGrid_NeedDataSource"
>
</
telerik:RadGrid
>
<
telerik:RadContextMenu
ID
=
"cm"
runat
=
"server"
>
</
telerik:RadContextMenu
>
<
telerik:RadContextMenu
ID
=
"gcm"
runat
=
"server"
>
</
telerik:RadContextMenu
>
</
telerik:RadAjaxPanel
>
</
td
>
</
tr
>
</
table
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
>
</
telerik:RadAjaxLoadingPanel
>
</
td
>
</
tr
>
</
table
>
<
telerik:RadWindowManager
runat
=
"server"
ID
=
"cwWinManager"
>
<
Windows
>
<
telerik:RadWindow
ID
=
"cwPrintWindow"
runat
=
"server"
ShowContentDuringLoad
=
"false"
Width
=
"800px"
Height
=
"600px"
Behaviors
=
"Default"
>
</
telerik:RadWindow
>
</
Windows
>
</
telerik:RadWindowManager
>
CWGrid.EnableEmbeddedScripts =
false
;
RadAjaxPanel1.EnableEmbeddedScripts =
false
;
RadAjaxLoadingPanel1.EnableEmbeddedScripts =
false
;
cm.EnableEmbeddedScripts =
false
;
gcm.EnableEmbeddedScripts =
false
;
cwWinManager.EnableEmbeddedScripts =
false
;
cwPrintWindow.EnableEmbeddedScripts =
false
;
string
telerikAssembly =
typeof
(RadGrid).Assembly.FullName;
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Common.Core.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Common.jQuery.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Common.jQueryPlugins.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Ajax.Ajax.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.ComboBox.RadComboBoxScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Common.Animation.AnimationScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Common.Navigation.NavigationScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Grid.RadGridScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Common.TouchScrollExtender.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Menu.RadMenuScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Filter.RadFilterScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Menu.ContextMenu.RadContextMenuScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Input.NumericTextBox.RadNumericInputScript.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Calendar.RadDatePicker.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Input.DateInput.RadDateInputScript.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Common.Popup.PopupScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Input.TextBox.RadInputScript.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Calendar.RadCalendarCommonScript.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Calendar.RadCalendarScript.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Calendar.RadDateTimePickerScript.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Calendar.RadPickersPopupDirectionEnumeration.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.ToolBar.RadToolBarScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Window.RadWindowScripts.js"
, telerikAssembly));
scriptManager.Scripts.Add(
new
ScriptReference(
"Telerik.Web.UI.Window.RadWindowManager.js"
, telerikAssembly));