Esempio n. 1
0
    protected void btnUserCPSet_Click(object sender, EventArgs e)
    {
        // 为已选择用户设置频道
        //string uCPlst = Request.Form[hfUserCP.UniqueID].ToString();
        string uCPlst = hfUserCP.Value;

        string[] currUserCPs = uCPlst.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

        string userName = tvCPUsers.SelectedNode.Text;
        string userID   = tvCPUsers.SelectedValue;

        Model.ChannelProgram[] mcps = dbll.getUsedChannelByUserID(userID);

        string[] prevUserCPs = new string[mcps.Length];
        for (int i = 0; i < mcps.Length; i++)
        {
            prevUserCPs[i] = mcps[i].CP_ID.ToString();
        }

        // 找不同的频道ID
        string[] addArr = findDistinct(prevUserCPs, currUserCPs);   //
        string[] delArr = findDistinct(currUserCPs, prevUserCPs);   //

        if (addArr.Length == 0 && delArr.Length == 0)
        {
            Response.Write("<script language=\"javascript\" type=\"text/javascript\">alert('已选频道没有任何改变!');</script>");
            return;
        }


        lbMessage.Text = "";
        lbWarning.Text = "";

        for (int i = 0; i < addArr.Length; i++)
        {
            if (sbll.addCPUser(userID, Convert.ToInt32(addArr[i])))
            {
                lbMessage.Text += String.Format("频道:{0} 用户:{1} 设置成功。<br/>", addArr[i], userName);
            }
            else
            {
                lbWarning.Text += String.Format("频道:{0} 用户:{1} 设置失败!<br/>", addArr[i], userName);
            }
        }

        for (int j = 0; j < delArr.Length; j++)
        {
            if (sbll.delCPUser(userID, Convert.ToInt32(delArr[j])))
            {
                lbMessage.Text += String.Format("频道:{0} 用户:{1} 解除成功。<br/>", delArr[j], userName);
            }
            else
            {
                lbWarning.Text += String.Format("频道:{0} 用户:{1} 解除失败!<br/>", delArr[j], userName);
            }
        }

        // 加载该频道未设置的用户列表和已设置的用户列表
        lbUsableCPDataBind(userID);
        lbUsedCPDataBind(userID);
        tvCPUsersDataBind();

        // 设置TreeView的选择状态
        TreeNode lastNode = null;

        foreach (TreeNode node in tvCPUsers.Nodes)
        {
            lastNode = GetNode(node, userID);
            if (lastNode != null)
            {
                break;
            }
        }

        // 选中并展开子节点
        if (lastNode != null)
        {
            lastNode.Selected = true;
            lastNode.Expand();
        }
    }