예제 #1
0
    private void tvProgramDataBind()
    {
        if (tvProgram.Nodes.Count > 0)
        {
            tvProgram.Nodes.Clear();
        }

        Model.ChannelProgramUser[] mcpus = null;

        // 如果登陆用户是管理员,显示所有的频道配置
        if (Session["UserRole"] != null && Session["UserRole"].ToString() == "0")
        {
            // 管理员角色:0
            mcpus = dbll.getCPs();
        }
        // 如果登陆用户是制片人,仅显示当前用户的频道配置
        else if (Session["UserRole"] != null && Session["UserRole"].ToString() == "1")
        {
            // 制片人角色:1
            mcpus = dbll.getCPUsersByUserID(Session["UserID"].ToString());
        }

        if (mcpus == null || mcpus.Length == 0)      // 该用户没有指定任何频道
        {
            lblLeftMessage.Text = "没有可管理的频道栏目!<br/>请联系管理员!";
        }
        else
        {
            // Channel第一项
            TreeNode rootNode = new TreeNode(mcpus[0].ChannelName, mcpus[0].ChannelID.ToString());   // text, value
            tvProgram.Nodes.Add(rootNode);

            // Program第一项
            rootNode.ChildNodes.Add(new TreeNode(mcpus[0].ProgramName, mcpus[0].ProgramID.ToString()
                                                 + "#" + mcpus[0].TimeTypeID.ToString() + "#" + mcpus[0].DataTypeID.ToString()));

            TreeNode leafNode = rootNode;
            for (int i = 1; i < mcpus.Length; i++)
            {
                leafNode = addCPNode(leafNode, mcpus[i - 1], mcpus[i]);
            }

            //tvProgram.CollapseAll();
        }

        // 管理员折叠所有频道栏目
        if (Session["UserRole"] != null && Session["UserRole"].ToString() == "0")
        {
            tvProgram.CollapseAll();
        }
    }