Posted 22 Aug 2012
Link to this post
HTML code:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="InformationInfo.ascx.cs"
Inherits="InformationInfo" %>
<%@ Register Assembly="RadTreeView.Net2" Namespace="Telerik.WebControls" TagPrefix="radT" %>
<script runat="server">
public string MasterUrl1(string url)
{
return String.Format("{0}/{1}", this.TemplateSourceDirectory, url);
}
</script>
<div class="contentBox2">
<div class="boxTitle2">
<asp:Image ID="Image1" ImageUrl="~/images/little-box-top-left.gif" runat="server" /><h1>
<asp:Label ID="lblSubMenu1" Text="Home" Width="100%" runat="server" ForeColor="#FE825E"
Font-Size="13px" Font-Bold="true" Font-Names="verdana" />
</h1>
</div>
<div class="boxContent2">
<div class="Control">
<radT:RadTreeView ID="rtvTopLeftPatientMenu" Skin="Arrows/3DBlue" runat="server"
OnNodeClick="rtvTopLeftPatientMenu_NodeClick">
</radT:RadTreeView>
</div>
<br />
</div>
<div class="boxCap2">
<asp:Image ID="Image2" ImageUrl="~/images/little-box-bottom-left.gif" runat="server" /></div>
</div>
Server side code :
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Data.SqlClient;
public partial class InformationInfo : System.Web.UI.UserControl
{
clsDataUtility dUT = new clsDataUtility();
private string _parentID = "", _subMenuHeader = "";
public string ParentMenuID
{
get
{
return _parentID;
}
set
{
_parentID = value;
}
}
public string SubMenuHeader
{
get
{
return _subMenuHeader;
}
set
{
_subMenuHeader = value;
}
}
private bool _SetForPatientInformation;
public bool SetForPatientInformation
{
get { return _SetForPatientInformation; }
set { _SetForPatientInformation = value; }
}
private bool _SetForPOSInformation;
public bool SetForPOSInformation
{
get { return _SetForPOSInformation; }
set { _SetForPOSInformation = value; }
}
private bool _SetForDispenserSetupInformation;
public bool SetForDispenserSetupInformation
{
get { return _SetForDispenserSetupInformation; }
set { _SetForDispenserSetupInformation = value; }
}
private bool _SetForOtherInformation;
public bool SetForOtherInformation
{
get { return _SetForOtherInformation; }
set { _SetForOtherInformation = value; }
}
private bool _SetForSecurityInformation;
public bool SetForSecurityInformation
{
get { return _SetForSecurityInformation; }
set { _SetForSecurityInformation = value; }
}
private Boolean _setForUserAccessLinks = false;
public bool SetForUserAccessLinks
{
get { return _setForUserAccessLinks; }
set { _setForUserAccessLinks = value; }
}
private bool _SetFromStringBuilder;
public bool SetFromStringBuilder
{
get { return _SetFromStringBuilder; }
set { _SetFromStringBuilder = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
//ImagesBaseDir="../../RadControls/TreeView/Skins/Arrows/3DBlue"
rtvTopLeftPatientMenu.ImagesBaseDir = "~/RadControls/TreeView/Skins/Arrows/3DBlue";
if (SubMenuHeader.Length >= 22)
{
lblSubMenu1.Text = SubMenuHeader.Substring(0, 20) + "..";
}
else
{
lblSubMenu1.Text = SubMenuHeader;
}
if (!IsPostBack)
{
UserSession userSession = new UserSession(this.Session);
if (SetForPatientInformation)
{
// BindTreeForPatient();
//}
DataTable treeViewData = new DataTable();
treeViewData = GetTreeViewData();
AddTopTreeViewNodes(treeViewData);
}
if (SetForUserAccessLinks)
{
DataTable treeViewData = new DataTable();
treeViewData = GetTreeViewData();
AddTopTreeViewNodes(treeViewData);
}
if (SetFromStringBuilder)
{
BindTreeXmlString();
}
}
}
private DataTable GetTreeViewData()
{
UserSession userSession = new UserSession(this.Session);
User objUser = new User();
DataTable dt = new DataTable();
if (userSession.UserID != "")
{
dt = objUser.GetHeaderMenuByUserID(Convert.ToInt32(userSession.UserID));
}
return dt;
}
/// <summary>
/// Filter the data to get only the rows that have a
/// null ParentID (these are the top-level TreeView items)
/// </summary>
private void AddTopTreeViewNodes(DataTable treeViewData)
{
if (ParentMenuID.Trim().Length > 0)
{
rtvTopLeftPatientMenu.SingleExpandPath = true;
string sTemp = string.Empty;
DataView view = new DataView(treeViewData);
view.RowFilter = "Parent_Menu_ID = " + ParentMenuID;
foreach (DataRowView row in view)
{
Telerik.WebControls.RadTreeNode newNode = new Telerik.WebControls.RadTreeNode(row["Menu_Description"].ToString(), row["Menu_Id"].ToString()); ;
sTemp = row["Menu_Description"].ToString();
if (sTemp.Trim().Length > 30)
{
newNode.Text = sTemp.Substring(0, 30) + "..";
}
else
{
if (newNode.Value == "2" || newNode.Value == "3" || newNode.Value == "6" || newNode.Value == "33" || newNode.Value == "42" || newNode.Value == "63" || newNode.Value == "84" || newNode.Value == "27" || newNode.Value == "28" || newNode.Value == "37" || newNode.Value == "41" || newNode.Value == "32" || newNode.Value == "21" || newNode.Value == "86" || newNode.Value == "87" || newNode.Value == "48" || newNode.Value == "18" || newNode.Value == "92" || newNode.Value == "93" || newNode.Value == "29" || newNode.Value == "94" || newNode.Value == "95")
newNode.Text = sTemp;
else
newNode.Text = sTemp + " *"; // * is provided on the link on which work is yet to be done.
}
newNode.ToolTip = sTemp;
UserSession userSession = new UserSession(this.Session);
//For Image Url has to be changed
DataView view1 = new DataView(treeViewData);
view1.RowFilter = "Parent_Menu_ID=" + newNode.Value;
if (view1.Count == 0)
{
newNode.ImageUrl = "BlankWhiteSpace.gif";
}
newNode.PostBack = true;
newNode.NavigateUrl = row["Navigate_Url"].ToString();
if (newNode.Value == "84")
{
newNode.PostBack = false;
newNode.NavigateUrl = "http://www.beltone.com/locator/locator-results.aspx";
newNode.Target = "_blank";
}
rtvTopLeftPatientMenu.Nodes.Add(newNode);
AddChildTreeViewNodes(treeViewData, newNode, 2);
if (Session["NodeClicked"] != "" && Session["NodeClicked"] != null)
{
if (newNode.Value == Session["NodeClicked"].ToString())
{
newNode.Expanded = true;
newNode.ExpandChildNodes();
}
}
}
}
}
/// <summary>
/// Recursively add child TreeView items by filtering by ParentID
/// </summary>
///
private void AddChildTreeViewNodes(DataTable treeViewData, Telerik.WebControls.RadTreeNode parentTreeViewNode, int levelFlag)
{
UserSession userSession = new UserSession(this.Session);
DataView view = new DataView(treeViewData);
view.RowFilter = "Parent_Menu_ID=" + parentTreeViewNode.Value;
string strMenu_Description = string.Empty;
string strMenu_Id = string.Empty;
string strNavigate_Url = string.Empty;
Telerik.WebControls.RadTreeNode newNode = null;
foreach (DataRowView row in view)
{
//Telerik.WebControls.RadTreeNode newNode = new Telerik.WebControls.RadTreeNode(row["Menu_Description"].ToString(), row["Menu_Id"].ToString());
//Telerik.WebControls.RadTreeNode newNode = new Telerik.WebControls.RadTreeNode();
newNode = new Telerik.WebControls.RadTreeNode();
strMenu_Id = Convert.ToString(row["Menu_Id"]);
strMenu_Description = Convert.ToString(row["Menu_Description"]);
strNavigate_Url = Convert.ToString(row["Navigate_Url"]);
switch (strMenu_Id)
{
case "22":
if (Convert.ToInt32(userSession.sAuthLevel) > 3)
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
break;
case "23":
if (Convert.ToInt32(userSession.sAuthLevel) > 3)
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
else
{
if (Convert.ToInt32(userSession.sAuthLevel) == 3)
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
}
break;
case "26":
if (Convert.ToInt32(userSession.sAuthLevel) == 9)
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
break;
case "37":
if (userSession.sAuth_Parts == "Y")
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
break;
case "42":
if (userSession.sAuth_CMS == "Y")
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
break;
case "48":
if (userSession.sAuth_BC_Rpts == "Y")
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
break;
case "63":
if (userSession.sAuth_INT_SALES_Rpts == "Y")
{
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
}
break;
//case "76":
// if (userSession.sAUTH_CMS_MGMT == "Y")
// {
// AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
// }
// break;
//case "45":
// if (userSession.sAUTH_TERR_MGMT == "Y")
// {
// AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
// }
// break;
//case "46":
// if (userSession.sAUTH_INC_CONTACTS == "Y")
// {
// AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
// }
// break;
//case "47":
// if (userSession.sAUTH_MKT == "Y")
// {
// AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
// }
// break;
default:
AddChildTreeViewNodesInCurrentNode(treeViewData, newNode, strNavigate_Url, strMenu_Description, strMenu_Id, parentTreeViewNode, levelFlag);
break;
}
}
}
private void AddChildTreeViewNodesInCurrentNode(DataTable treeViewData, Telerik.WebControls.RadTreeNode newNode, string strNavigate_Url, string strMenu_Description, string strMenu_Id, Telerik.WebControls.RadTreeNode parentTreeViewNode, int levelFlag)
{
if (strMenu_Id == "9" || strMenu_Id == "10" || strMenu_Id == "11" || strMenu_Id == "12" || strMenu_Id == "13" || strMenu_Id == "14" || strMenu_Id == "15" || strMenu_Id == "34" || strMenu_Id == "35" || strMenu_Id == "43" || strMenu_Id == "44" || strMenu_Id == "45" || strMenu_Id == "47" || strMenu_Id == "70" || strMenu_Id == "72" || strMenu_Id == "73" || strMenu_Id == "76" || strMenu_Id == "77" || strMenu_Id == "78" || strMenu_Id == "79" || strMenu_Id == "80" || strMenu_Id == "82" || strMenu_Id == "38" || strMenu_Id == "39" || strMenu_Id == "40" || strMenu_Id == "81" || strMenu_Id == "22" || strMenu_Id == "23" || strMenu_Id == "24" || strMenu_Id == "25" || strMenu_Id == "26" || strMenu_Id == "46" || strMenu_Id == "50" || strMenu_Id == "51" || strMenu_Id == "52" || strMenu_Id == "19" || strMenu_Id == "20" || strMenu_Id == "88" || strMenu_Id == "89" || strMenu_Id == "90" || strMenu_Id == "31" || strMenu_Id == "30" || strMenu_Id == "49" || strMenu_Id == "54" || strMenu_Id == "55" || strMenu_Id == "53" || strMenu_Id == "56" || strMenu_Id == "57" || strMenu_Id == "58" || strMenu_Id == "59" || strMenu_Id == "60" || strMenu_Id == "61" || strMenu_Id == "62" || strMenu_Id == "64" || strMenu_Id == "65" || strMenu_Id == "96" || strMenu_Id == "97" || strMenu_Id == "98" || strMenu_Id == "99" || strMenu_Id == "100" || strMenu_Id == "68")
newNode.Text = strMenu_Description;
else
newNode.Text = strMenu_Description + " *"; // * is provided on the link on which work is yet to be done.
newNode.Value = strMenu_Id;
newNode.PostBack = true;
newNode.NavigateUrl = strNavigate_Url;
newNode.CssClassOver = "SecondLevelNavigationOver";
newNode.CssClassSelect = "SecondLevelNavigationSelect";
newNode.CssClass = "TreeNodeSecondLevelNavigation";
parentTreeViewNode.Nodes.Add(newNode);
AddChildTreeViewNodes(treeViewData, newNode, levelFlag + 1);
}
//private void AddChildTreeViewNodes(DataTable treeViewData, Telerik.WebControls.RadTreeNode parentTreeViewNode, int levelFlag)
//{
// DataView view = new DataView(treeViewData);
// view.RowFilter = "Parent_Menu_ID=" + parentTreeViewNode.Value;
// foreach (DataRowView row in view)
// {
// //Telerik.WebControls.RadTreeNode newNode = new Telerik.WebControls.RadTreeNode(row["Menu_Description"].ToString(), row["Menu_Id"].ToString());
// Telerik.WebControls.RadTreeNode newNode = new Telerik.WebControls.RadTreeNode();
// newNode.Text = row["Menu_Description"].ToString();
// newNode.Value = row["Menu_Id"].ToString();
// newNode.PostBack = true;
// newNode.NavigateUrl = row["Navigate_Url"].ToString();
// newNode.CssClassOver = "SecondLevelNavigationOver";
// newNode.CssClassSelect = "SecondLevelNavigationSelect";
// newNode.CssClass = "TreeNodeSecondLevelNavigation";
// UserSession userSession = new UserSession(this.Session);
// parentTreeViewNode.Nodes.Add(newNode);
// AddChildTreeViewNodes(treeViewData, newNode, levelFlag + 1);
// }
//}
private void BindTreeForPatient()
{
StringBuilder sb = new StringBuilder();
sb.Append("<Tree>");
sb.Append(" <Node Text='Patient Info' ImageUrl = 'WhiteSpace.gif' NavigateUrl='~/Patient/UpdateOriginalMarketingSource.aspx' />");
sb.Append(" <Node Text='Incomplete Patient Registration' ImageUrl = 'WhiteSpace.gif' NavigateUrl='~/Patient/IncompletePatientRegistration.aspx' />");
sb.Append(" <Node Text='Consolidate Patients' ImageUrl = 'WhiteSpace.gif' NavigateUrl='~/Patient/ConsolidateContact.aspx' />");
sb.Append(" <Node Text='Hearing Aid Registration' ImageUrl = 'WhiteSpace.gif' NavigateUrl='~/Patient/HearingAidRegistration.aspx' />");
sb.Append("</Tree>");
string xmlString = sb.ToString();
rtvTopLeftPatientMenu.LoadXmlString(xmlString);
}
protected void rtvTopLeftPatientMenu_NodeClick(object o, Telerik.WebControls.RadTreeNodeEventArgs e)
{
if (e.NodeClicked.Parent != null)
{
Session["NodeClicked"] = e.NodeClicked.Parent.Value;
try
{
if (e.NodeClicked.Parent.Parent.Value != null)
{
Session["NodeClicked"] = e.NodeClicked.Parent.Parent.Value;
}
}
catch { };
}
else
{
Session["NodeClicked"] = "";
}
if (e.NodeClicked.Value == "21" || e.NodeClicked.Value == "29" || e.NodeClicked.Value == "33" || e.NodeClicked.Value == "37" || e.NodeClicked.Value == "42" || e.NodeClicked.Value == "48" || e.NodeClicked.Value == "63" || e.NodeClicked.Value == "18")
{
e.NodeClicked.Expanded = true;
e.NodeClicked.ExpandChildNodes();
}
//UserSession userSession = new UserSession(this.Session);
//switch (e.NodeClicked.Value)
//{
// case "42":
// userSession.NoAccessLeftSideNavigation = "InternalCMS";
// if (e.NodeClicked.Expanded == true)
// {
// e.NodeClicked.CollapseChildNodes();
// Session["NodeClicked"] = "";
// }
// else
// Session["NodeClicked"] = e.NodeClicked.Value;
// break;
// default:
// userSession.NoAccessLeftSideNavigation = "";
// break;
//}
}
private void BindTreeXmlString()
{
UserSession userSession = new UserSession(this.Session);
StringBuilder sb = new StringBuilder();
string strTemp = String.Empty;
//Item 4696
if (HttpContext.Current.Request.Cookies["PatientInformation"] != null)
{
strTemp = HttpContext.Current.Request.Cookies["PatientInformation"].Value.ToString();
}
string contactId = "";
if (Request.QueryString["Contact_Id"] != null && Request.QueryString["Contact_Id"] != "")
{
contactId = Request.QueryString["Contact_Id"];
}
else if (Request.QueryString["ContactId"] != null && Request.QueryString["ContactId"] != "")
{
contactId = Request.QueryString["ContactId"];
}
sb.Append("<!DOCTYPE r [<!ELEMENT r (#PCDATA)><!ENTITY nbsp ' '>]>");
sb.Append("<Tree>");
bool pageAccessPermission = true;
//pageID1 = 867;
//pageAccessPermission = CheckSecurity(pageID1, 689);
if (pageAccessPermission)
{
if (contactId != "")
{
sb.Append(" <Node Text='Instruments' ImageUrl = 'WhiteSpace.gif' NavigateUrl = '~/Intranet/cms/Instruments.aspx?Contact_ID=" + contactId + "'/>");
sb.Append(" <Node Text='Marketing Response' ImageUrl = 'WhiteSpace.gif' NavigateUrl = '~/Intranet/cms/Marketing_History.aspx?Contact_ID=" + contactId + "' />");
}
}
sb.Append("</Tree>");
string xmlString = sb.ToString();
rtvTopLeftPatientMenu.LoadXmlString(xmlString);
rtvTopLeftPatientMenu.AfterClientClick = "AfterClickHandler";
}
}