1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| public partial class View : PortalModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
#region MasterListView_ItemDataBound
public void MasterListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
ListViewItem objListViewItem = (ListViewItem)e.Item;
ListViewDataItem objListViewDataItem = objListViewItem as ListViewDataItem;
if (objListViewDataItem != null)
{
Tab objTab = (Tab)objListViewDataItem.DataItem;
IEnumerable<Tab> Tabs = CustomData(objTab.TabID);
Label TabIDLabel = (Label)objListViewItem.FindControl("TabIDLabel");
Label TabNameLabel = (Label)objListViewItem.FindControl("TabNameLabel");
TabIDLabel.Text = objTab.TabID.ToString();
TabNameLabel.Text = objTab.TabName;
AddListView(objTab.TabName, objListViewItem, Tabs);
}
}
#endregion
#region CustomData
static IEnumerable<Tab> CustomData(int? ParentID)
{
TabAdminDataContext objTabAdminDataContext = new TabAdminDataContext();
var myCustomData = from Tabs in objTabAdminDataContext.Tabs
where Tabs.ParentId == ParentID
select Tabs;
return myCustomData.AsEnumerable();
}
#endregion
#region AddListView
private void AddListView(string CurrentTabName, Control container, IEnumerable<Tab> ChildTabs)
{
// The Tab has Children so add a ListView
if (ChildTabs.Count() > 0)
{
ListView ChildListView = new ListView();
ChildListView.ID ="ChildListView";
ChildListView.ItemCommand += ListView_ItemCommand;
ChildListView.EnableViewState = true;
ChildListView.LayoutTemplate = new MyLayoutTemplate();
ChildListView.ItemTemplate = new MyItemTemplate();
ChildListView.DataSource = ChildTabs;
ChildListView.DataBind();
// Put the ListView in a Panel
var oTR = new HtmlGenericControl("tr") { ID ="ChildListViewTR" };
var oTD = new HtmlGenericControl("td") { ID ="ChildListViewTD" };
Panel objPanel = new Panel();
objPanel.ID ="ListViewPanel";
objPanel.ToolTip = CurrentTabName;
objPanel.Controls.Add(ChildListView);
oTD.Controls.Add(objPanel);
oTR.Controls.Add(oTD);
container.Controls.Add(oTR);
}
}
#endregion
#region ListView_ItemCommand
protected void ListView_ItemCommand(object sender, ListViewCommandEventArgs e)
{
LinkButton objButton = (LinkButton)sender;
Label1.Text = objButton.Text;
MasterListView.DataBind();
}
#endregion
#region MyLayoutTemplate
public class MyLayoutTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
var oTR = new HtmlGenericControl("tr") { ID ="itemPlaceholder" };
container.Controls.Add(oTR);
}
}
#endregion
#region ItemTemplate
public class MyItemTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
var oTR = new HtmlGenericControl("tr");
var oTD1 = new HtmlGenericControl("td");
LinkButton TabIDLinkButton = new LinkButton();
TabIDLinkButton.ID ="TabIDLinkButton";
oTD1.Controls.Add(TabIDLinkButton);
oTR.Controls.Add(oTD1);
var oTD2 = new HtmlGenericControl("td");
Label TabNameLabel = new Label();
TabNameLabel.ID ="TabNameLabel";
oTD2.Controls.Add(TabNameLabel);
oTR.Controls.Add(oTD2);
oTR.DataBinding += DataBinding;
container.Controls.Add(oTR);
}
public void DataBinding(object sender, EventArgs e)
{
var container = (HtmlGenericControl)sender;
var dataItem = ((ListViewDataItem)container.NamingContainer).DataItem;
Tab objTab = (Tab)dataItem;
LinkButton TabIDLinkButton = (LinkButton)container.FindControl("TabIDLinkButton");
Label TabNameLabel = (Label)container.FindControl("TabNameLabel");
TabIDLinkButton.Text ="+" + objTab.TabID.ToString();
TabNameLabel.Text = objTab.TabName;
IEnumerable<Tab> ChildTabs = View.CustomData(objTab.TabID);
View objView = new View();
objView.AddListView(objTab.TabName, container, ChildTabs);
}
}
#endregion
} |