protected void DataGrid_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
        {
            #region 翻页

            SpecialUserList.LoadCurrentPageIndex(e.NewPageIndex);
            DataGridBind("");
            BindTopicType();
            this.TabControl1.SelectedIndex = 3;
            //base.CallBaseRegisterStartupScript("PAGE", "<script>Tab_OnSelectClientClick(document.getElementById('TabControl1:tabPage34_H2'),'TabControl1:tabPage34');</script>");

            #endregion
        }
 public void DelButton_Click(object sender, EventArgs e)
 {
     #region  除特殊用户
     int       row = 0;
     ArrayList al  = new ArrayList(forumInfo.Permuserlist.Split('|'));
     foreach (object o in SpecialUserList.GetKeyIDArray())
     {
         if (SpecialUserList.GetCheckBoxValue(row, "userid"))
         {
             string uid = o.ToString();
             foreach (string user in forumInfo.Permuserlist.Split('|'))
             {
                 if (user.IndexOf("," + uid + ",") > 0)
                 {
                     al.Remove(user);
                     break;
                 }
             }
         }
         row++;
     }
     string result = "";
     foreach (string user in al)
     {
         result += user + "|";
     }
     if (result != "")
     {
         result = result.Substring(0, result.Length - 1);
     }
     forumInfo.Permuserlist = result;
     AdminForums.UpdateForumInfo(forumInfo);
     if (SpecialUserList.Items.Count == 1 && SpecialUserList.CurrentPageIndex > 0)
     {
         SpecialUserList.CurrentPageIndex--;
     }
     DataGridBind("");
     BindTopicType();
     this.TabControl1.SelectedIndex = 3;
     #endregion
 }
        private string GetPermuserlist()
        {
            #region 获取特殊用户
            int    row    = 0;
            string result = forumInfo.Permuserlist;
            if (result == null)
            {
                return("");
            }
            foreach (object o in SpecialUserList.GetKeyIDArray())
            {
                string uid   = o.ToString();
                int    power = 0;
                if (SpecialUserList.GetCheckBoxValue(row, "viewbyuser"))
                {
                    power |= (int)Discuz.Entity.ForumSpecialUserPower.ViewByUser;
                }
                if (SpecialUserList.GetCheckBoxValue(row, "postbyuser"))
                {
                    power |= (int)Discuz.Entity.ForumSpecialUserPower.PostByUser;
                }
                if (SpecialUserList.GetCheckBoxValue(row, "replybyuser"))
                {
                    power |= (int)Discuz.Entity.ForumSpecialUserPower.ReplyByUser;
                }
                if (SpecialUserList.GetCheckBoxValue(row, "getattachbyuser"))
                {
                    power |= (int)Discuz.Entity.ForumSpecialUserPower.DownloadAttachByUser;
                }
                if (SpecialUserList.GetCheckBoxValue(row, "postattachbyuser"))
                {
                    power |= (int)Discuz.Entity.ForumSpecialUserPower.PostAttachByUser;
                }
                string[] userpowerlist = forumInfo.Permuserlist.Split('|');
                bool     find          = false;
                foreach (string u in userpowerlist)
                {
                    if (u.IndexOf("," + uid + ",") > 0)
                    {
                        result = result.Replace(u, u.Split(',')[0] + "," + uid + "," + power);
                        find   = true;
                        break;
                    }
                }
                if (!find)
                {
                    ShortUserInfo shortUserInfo = Users.GetShortUserInfo(Convert.ToInt32(uid));

                    result = ((shortUserInfo != null) ? shortUserInfo.Username.Trim() : "") + "," + uid + "," + power + "|" + result;
                }
                row++;
            }
            if (result == "")
            {
                return("");
            }
            else
            {
                if (result.Substring(result.Length - 1, 1) == "|")
                {
                    return(result.Substring(0, result.Length - 1));
                }
                else
                {
                    return(result);
                }
            }
            #endregion
        }
        private void DataGridBind(string userList)
        {
            #region 特殊用户设置
            SpecialUserList.TableHeaderName = "特殊用户权限设置";
            string    Permuserlist = forumInfo.Permuserlist;
            DataTable dt           = new DataTable();
            dt.Columns.Add("id", System.Type.GetType("System.Int32"));
            dt.Columns.Add("uid", System.Type.GetType("System.Int32"));
            dt.Columns.Add("name", System.Type.GetType("System.String"));
            dt.Columns.Add("viewbyuser", System.Type.GetType("System.Boolean"));
            dt.Columns.Add("postbyuser", System.Type.GetType("System.Boolean"));
            dt.Columns.Add("replybyuser", System.Type.GetType("System.Boolean"));
            dt.Columns.Add("getattachbyuser", System.Type.GetType("System.Boolean"));
            dt.Columns.Add("postattachbyuser", System.Type.GetType("System.Boolean"));
            foreach (string user in userList.Split(','))
            {
                if (user.Trim() == "")
                {
                    continue;
                }
                int uid = Discuz.Forum.Users.GetUserId(user);
                if (uid != -1)
                {
                    DataRow dr = dt.NewRow();
                    dr["id"]               = dt.Rows.Count + 1;
                    dr["uid"]              = uid.ToString();
                    dr["name"]             = user;
                    dr["viewbyuser"]       = false;
                    dr["postbyuser"]       = false;
                    dr["replybyuser"]      = false;
                    dr["getattachbyuser"]  = false;
                    dr["postattachbyuser"] = false;
                    dt.Rows.Add(dr);
                }
            }

            if (Permuserlist != null)
            {
                foreach (string p in Permuserlist.Split('|'))
                {
                    if (("," + userList + ",").IndexOf("," + p.Split(',')[0] + ",") >= 0)
                    {
                        continue;
                    }
                    int     power = Convert.ToInt32(p.Split(',')[2]);
                    DataRow dr    = dt.NewRow();
                    dr["id"]               = dt.Rows.Count + 1;
                    dr["uid"]              = p.Split(',')[1];
                    dr["name"]             = p.Split(',')[0];
                    dr["viewbyuser"]       = power & (int)Discuz.Entity.ForumSpecialUserPower.ViewByUser;
                    dr["postbyuser"]       = power & (int)Discuz.Entity.ForumSpecialUserPower.PostByUser;
                    dr["replybyuser"]      = power & (int)Discuz.Entity.ForumSpecialUserPower.ReplyByUser;
                    dr["getattachbyuser"]  = power & (int)Discuz.Entity.ForumSpecialUserPower.DownloadAttachByUser;
                    dr["postattachbyuser"] = power & (int)Discuz.Entity.ForumSpecialUserPower.PostAttachByUser;
                    dt.Rows.Add(dr);
                }
            }
            SpecialUserList.DataSource = dt;
            SpecialUserList.DataBind();
            #endregion
        }