微信公众号中用户分组管理.NET实例详解

互联网 17-4-26
Model层实体类:
 public class UserList    {      public string total { get; set; }      public string count { get; set; }      public userlistopenid data { get; set; }      public string next_openid { get; set; }    }
  public class userlistopenid    {      public List<string> openid { get; set; }    }
 public class WxGroupsInfo    {      public string Group_ID { get; set; }//分组编号      public string Group_Name { get; set; }//分组名称      public string Group_Count { get; set; }//分组人数    }

WX.aspx内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WX.aspx.cs" Inherits="test.WX" %>    <!DOCTYPE html>    <html xmlns="http://www.w3.org/1999/xhtml">    <head runat="server">      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>      <style type="text/css">        .inputstyle {          height: 35px;          line-height: 35px;          text-indent: 5px;          width: 350px;          background-image: url('images/inputbg.gif');          background-repeat: repeat-x;          border-top: solid 1px #a7b5bc;          border-left: solid 1px #a7b5bc;          border-right: solid 1px #ced9df;          border-bottom: solid 1px #ced9df;          margin: 15px auto 15px auto;        }            .g_title {          width: 100%;          border-bottom: 2px solid #ced9df;          font-size: 20px;          font-weight: bold;          text-align: left;          text-indent: 5px;          height: 40px;          line-height: 40px;        }          th {          height: 35px;          background-color: #31bb34;          background-repeat: repeat-x;        }          tr { height: 30px; }          #shownewgroup {          width: 300px;          height: 200px;          background-color: white;          z-index: 9999;          border: 2px solid #DDD;          top: 40%;          left: 40%;          background-color: #fff;          position: fixed;          margin: -100px auto auto -100px;          display: none;        }          #shownewgroupzhezhaoceng {          height: 200%;          width: 200%;          left: 0px;          top: 0px;          position: fixed;          z-index: 9998;          background: rgb(50, 50, 50);          background: rgba(0, 0, 0, 0.5);          display: none;        }          .closeLogin {          height: 30px;          border-bottom: 2px solid #31bb34;          text-align: right;          line-height: 30px;          font-size: 14px;          font-weight: bold;        }          a:hover { cursor: pointer; }          .inputstyle22 {          height: 35px;          line-height: 35px;          text-indent: 5px;          width: 280px;          background-image: url('images/inputbg.gif');          background-repeat: repeat-x;          border-top: solid 1px #a7b5bc;          border-left: solid 1px #a7b5bc;          border-right: solid 1px #ced9df;          border-bottom: solid 1px #ced9df;          float: left;          margin: auto 5px auto 5px;        }          </style>        <style type="text/css">          .button {          font: 15px Calibri, Arial, sans-serif;           text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.4);            text-decoration: none !important;          white-space: nowrap;            display: inline-block;          vertical-align: baseline;          position: relative;          cursor: pointer;          padding: 4px 20px;            background-repeat: no-repeat;           background-position: bottom left;          background-image: url('button_bg.png');            background-position: bottom left, top right, 0 0, 0 0;          background-clip: border-box;            -moz-border-radius: 8px;          -webkit-border-radius: 8px;          border-radius: 8px;            -moz-box-shadow: 0 0 1px #fff inset;          -webkit-box-shadow: 0 0 1px #fff inset;          box-shadow: 0 0 1px #fff inset;            -webkit-transition: background-position 1s;          -moz-transition: background-position 1s;          transition: background-position 1s;        }            .blue.button {          color: #0f4b6d !important;            border: 1px solid #84acc3 !important;            background-color: #48b5f2;            background-image: url('button_bg.png'), url('button_bg.png'),                   -moz-radial-gradient(center bottom, circle,                              rgba(89, 208, 244, 1) 0, rgba(89, 208, 244, 0) 100px),                   -moz-linear-gradient(#4fbbf7, #3faeeb);            background-image: url('button_bg.png'), url('button_bg.png'),                   -webkit-gradient(radial, 50% 100%, 0, 50% 100%, 100,                            from(rgba(89, 208, 244, 1)), to(rgba(89, 208, 244, 0))),                   -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4fbbf7), to(#3faeeb));        }          .blue.button:hover {          background-color: #63c7fe;            background-image: url('button_bg.png'), url('button_bg.png'),                   -moz-radial-gradient(center bottom, circle,                              rgba(109, 217, 250, 1) 0, rgba(109, 217, 250, 0) 100px),                   -moz-linear-gradient(#63c7fe, #58bef7);            background-image: url('button_bg.png'), url('button_bg.png'),                   -webkit-gradient(radial, 50% 100%, 0, 50% 100%, 100,                            from(rgba(109, 217, 250, 1)), to(rgba(109, 217, 250, 0))),                   -webkit-gradient(linear, 0% 0%, 0% 100%, from(#63c7fe), to(#58bef7));        }          </style>      <script src="js/jquery-1.11.2.min.js"></script>      <script type="text/javascript">          //修改分组名称调用的函数        function EditRoster(PayNo, name) {            //alert(PayNo+":"+name);          var url = 'Edit.aspx?id=' + PayNo + "&name=" + name; //转向网页的地址;           var name = 'add'; //网页名称,可为空;           var iWidth = 600; //弹出窗口的宽度;           var iHeight = 300; //弹出窗口的高度;           //获得窗口的垂直位置           var iTop = (window.screen.availHeight - 30 - iHeight) / 2;          //获得窗口的水平位置           var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;          window.open(url, name, 'height=' + iHeight + ',innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no');        }          $(document).ready(function() {            $(".newGroups").click(function() {              $("#shownewgroupzhezhaoceng").show();              $("#shownewgroup").show();            }),            $('.closeloginpage').click(function() {              $("#shownewgroupzhezhaoceng").hide();              $("#shownewgroup").hide();            });        });      </script>    </head>    <body>      <form id="form1" runat="server">        <p class="g_title">分组管理</p>        <p id="shownewgroup">          <p class="closeLogin">            <span style="float: left; color: #08a5e0; font-size: 18px; text-indent: 5px;">新建分组</span>            <a class="closeloginpage button blue ">              关闭            </a>          </p>          <p style="font-size: 12px; height: 40px; color: red; line-height: 40px;">            30字符以内            </p>          <input type="text" id="txtgroupsName" name="txtgroupsName" class="inputstyle22" maxlength="30" runat="server" value="分组名称" onfocus="if(value==defaultValue){value='';this.style.color='#000'}" onblur="if(!value){value=defaultValue;this.style.color='#999'}" style="color: #999"/>          <asp:LinkButton ID="LinkBtnCreateGroup" runat="server" OnClick="LinkBtnCreateGroup_Click">            <p style="background-image: url('images/buttonbg.png'); width: 111px; height: 35px; line-height: 35px; font-weight: bold; float: left; margin-top: 20px; margin-left: 5px; text-align: center; color: #fff;">              确定创建            </p>            </asp:LinkButton>        </p>        <p id="shownewgroupzhezhaoceng"></p>        <table style="width: 1124px; margin: 10px auto 10px auto; border: 1px solid #ecd9df; text-align: center;">          <asp:Repeater ID="RepeaterGroupList" runat="server" OnItemCommand="RepeaterGroupList_ItemCommand" OnItemDataBound="RepeaterGroupList_ItemDataBound">            <HeaderTemplate>              <tr>                <th>序号</th>                <th>ID编号</th>                <th>分组名称</th>                <th>分组人数</th>                <th>操作</th>              </tr>            </HeaderTemplate>            <ItemTemplate>              <tr style='background-color: <%#(Container.ItemIndex%2 == 0) ? "#fff" : "#ced9ff" %>'>                <td><asp:Label ID="lbXuHao" runat="server" Text=""></asp:Label></td>                <td><%# Eval("Group_ID") %></td>                <td><%# Eval("Group_Name") %></td>                <td><%# Eval("Group_Count") %></td>                <td>                  <a class="button blue" onclick=" EditRoster('<%# Eval("Group_ID") %>', '<%# Eval("Group_Name") %>'); ">修改分组名称</a>                  <asp:LinkButton ID="LinkBtnDeleteGroup" runat="server" CommandName="DeleteGroups" CommandArgument='<%# Eval("Group_ID") %>' CssClass="button blue">删除分组</asp:LinkButton>                    <asp:LinkButton ID="LinkBtnSendByGroup" runat="server" CommandName="SendByGroups" CommandArgument='<%# Eval("Group_ID") %>' CssClass="button blue">此分组消息群发</asp:LinkButton>                    <asp:LinkButton ID="LinkBtnMoveUserToGroup" runat="server" CommandName="MoveUserToGroup" CommandArgument='<%# Eval("Group_ID") %>' CssClass="button blue">移动分组</asp:LinkButton>                </td>              </tr>            </ItemTemplate>          </asp:Repeater>        </table>        <a class="newGroups"><p style="background-image: url('images/buttonbg.png'); width: 111px; height: 35px; line-height: 35px; margin: 10px auto 10px 28px; font-weight: bold; float: left; text-align: center; color: #fff;"> ┼ 新建分组</p></a>      </form>    </body>  </html>

WX.aspx.cs代码:

public partial class WX : System.Web.UI.Page    {      protected void Page_Load(object sender, EventArgs e)      {        BindGroupList();        this.DataBind();      }          private void BindGroupList()      {        WeiXinServer wxs = new WeiXinServer();          //从缓存读取accesstoken        string Access_token = Cache["Access_token"] as string;          if (Access_token == null)        {          //如果为空,重新获取          Access_token = wxs.GetAccessToken();          //设置缓存的数据7000秒后过期          Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),            System.Web.Caching.Cache.NoSlidingExpiration);        }          string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);          string jsonres = "";          string content = Cache["AllGroups_content"] as string;          if (content == null)        {          jsonres = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token=" + Access_tokento;            HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create(jsonres);          myRequest.Method = "GET";          HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse();          StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);          content = reader.ReadToEnd();          reader.Close();            //设置缓存的数据7000秒后过期          Cache.Insert("AllGroups_content", content, null, DateTime.Now.AddSeconds(7000),            System.Web.Caching.Cache.NoSlidingExpiration);        }          //使用前需要引用Newtonsoft.json文件        JObject jsonObj = JObject.Parse(content);            int groupsnum = jsonObj["groups"].Count();            List<WxGroupsInfo> wxgrouplist = new List<WxGroupsInfo>();          for (int i = 0; i < groupsnum; i++)        {          WxGroupsInfo wginfo = new WxGroupsInfo();            wginfo.Group_ID = jsonObj["groups"][i]["id"].ToString();            wginfo.Group_Name = jsonObj["groups"][i]["name"].ToString();            wginfo.Group_Count = jsonObj["groups"][i]["count"].ToString();            wxgrouplist.Add(wginfo);        }          this.RepeaterGroupList.DataSource = wxgrouplist;        this.RepeaterGroupList.DataBind();      }          /// <summary>      /// 绑定事件      /// </summary>      /// <param name="sender"></param>      /// <param name="e"></param>      protected void RepeaterGroupList_ItemDataBound(object sender, RepeaterItemEventArgs e)      {        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)        {          Label lbXuHao = e.Item.FindControl("lbXuHao") as Label;            int num = 1;            lbXuHao.Text = num.ToString();            for (int i = 0; i < this.RepeaterGroupList.Items.Count; i++)          {            num += 1;            lbXuHao.Text = num.ToString();          }              LinkButton LinkBtnDeleteGroup = e.Item.FindControl("LinkBtnDeleteGroup") as LinkButton;          LinkButton LinkBtnSendByGroup = e.Item.FindControl("LinkBtnSendByGroup") as LinkButton;            LinkBtnDeleteGroup.Attributes.Add("OnClick", "return confirm('您确定要删除该分组?删除后该分组内的人员即将恢复到默认分组!')");          LinkBtnDeleteGroup.Attributes.Add("OnClick", "return confirm('您确定要群发消息到该分组?')");        }      }        /// <summary>      /// 执行事件      /// </summary>      /// <param name="source"></param>      /// <param name="e"></param>      protected void RepeaterGroupList_ItemCommand(object source, RepeaterCommandEventArgs e)      {         if (e.CommandName == "DeleteGroups")        {          WeiXinServer wxs = new WeiXinServer();          string res = "";            //从缓存读取accesstoken          string Access_token = Cache["Access_token"] as string;            if (Access_token == null)          {            //如果为空,重新获取            Access_token = wxs.GetAccessToken();              //设置缓存的数据7000秒后过期            Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),              System.Web.Caching.Cache.NoSlidingExpiration);          }            string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);              string posturl = "https://api.weixin.qq.com/cgi-bin/groups/delete?access_token=" + Access_tokento;              //POST数据例子: POST数据例子:{"group":{"id":108}}            string groupid = e.CommandArgument.ToString();            string postData = "{\"group\":{\"id\":\"" + groupid + "\"}}";            res = wxs.GetPage(posturl, postData);            ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",            "alert('删除成功!由于缓存问题,您可能需要重新登录才能看到效果!');location='WxGroupManageList.aspx';", true);        }          if (e.CommandName == "SendByGroups")        {          WeiXinServer wxs = new WeiXinServer();          string res = "";            //从缓存读取accesstoken          string Access_token = Cache["Access_token"] as string;            if (Access_token == null)          {            //如果为空,重新获取            Access_token = wxs.GetAccessToken();              //设置缓存的数据7000秒后过期            Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),              System.Web.Caching.Cache.NoSlidingExpiration);          }            string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);              string posturl = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=" + Access_tokento;            string groupid = e.CommandArgument.ToString();            //string postData = "{\"group\":{\"id\":\"" + groupid.ToString() + "\"}}";            JObject postData = new JObject();                  JObject filter = new JObject();                  filter.Add("is_to_all", false);                  filter.Add("group_id", groupid);                    JObject text = new JObject();                  text.Add("content", "测试内容!");                    postData.Add("filter", filter);                  postData.Add("text", text);                  postData.Add("msgtype", "text");             res = wxs.GetPage(posturl, postData.ToString());            ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",            "alert('群发成功!由于缓存问题,您可能需要重新登录才能看到效果!');location='WxGroupManageList.aspx';", true);        }          if (e.CommandName == "MoveUserToGroup")        {          WeiXinServer wxs = new WeiXinServer();          string res = "";          string Access_token = Cache["Access_token"] as string;            if (Access_token == null)          {            Access_token = wxs.GetAccessToken();            Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);          }            string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);          string posturl = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=" + Access_tokento;            string UserListurl = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + Access_tokento + "&next_openid=";              //{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}          res = wxs.GetPage(UserListurl,"");          UserList userList= JsonConvert.DeserializeObject<UserList>(res);          String openid=userList.data.openid.FirstOrDefault();          int togroup_id = 101;//输入分组ID          string postData = "{\"openid\":\"" + openid + "\",\"to_groupid\":" + togroup_id + "}";          res = wxs.GetPage(posturl, postData);            ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",            "alert('移动分组成功!由于缓存问题,您可能需要重新登录才能看到效果!');location='WxGroupManageList.aspx';", true);        }      }        /// <summary>      /// 创建分组      /// </summary>      /// <param name="sender"></param>      /// <param name="e"></param>      protected void LinkBtnCreateGroup_Click(object sender, EventArgs e)      {        if (this.txtgroupsName.Value.Equals("分组名称"))        {          ////          ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('不能为空!')", true);          this.txtgroupsName.Focus();          return;        }            WeiXinServer wxs = new WeiXinServer();        string res = "";          ///从缓存读取accesstoken        string Access_token = Cache["Access_token"] as string;          if (Access_token == null)        {          //如果为空,重新获取          Access_token = wxs.GetAccessToken();            //设置缓存的数据7000秒后过期          Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),            System.Web.Caching.Cache.NoSlidingExpiration);        }          string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);            string posturl = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token=" + Access_tokento;          string postData = "{\"group\":{\"name\":\"" + this.txtgroupsName.Value.ToString().Trim() + "\"}}";         res = wxs.GetPage(posturl, postData);         ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",          "alert('创建成功!如未显示,请退出重新登录即可!');location='WxGroupManageList.aspx';", true);      }    }

WeiXinServer.cs代码:

/// <summary>    /// 微信服务类    /// </summary>    public class WeiXinServer    {      /// <summary>      /// 获取通行证      /// </summary>      /// <returns></returns>      public string GetAccessToken()      {        string url_token =          "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx3eb5bf1290db2ca0&secret=e6013be0a7338c7d3e02877db116e231";        HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create(url_token);        myRequest.Method = "GET";        HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse();        StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);        string content = reader.ReadToEnd();        reader.Close();        return content;      }        public string GetPage(string p, string postData)      {        Stream outstream = null;        Stream instream = null;        StreamReader sr = null;        HttpWebResponse response = null;        HttpWebRequest request = null;        Encoding encoding = Encoding.UTF8;        byte[] data = encoding.GetBytes(postData);        // 准备请求...        try        {          // 设置参数          request = WebRequest.Create(p) as HttpWebRequest;          CookieContainer cookieContainer = new CookieContainer();          request.CookieContainer = cookieContainer;          request.AllowAutoRedirect = true;          request.Method = "POST";          request.ContentType = "application/x-www-form-urlencoded";          request.ContentLength = data.Length;          outstream = request.GetRequestStream();          outstream.Write(data, 0, data.Length);          outstream.Close();          //发送请求并获取相应回应数据          response = request.GetResponse() as HttpWebResponse;          //直到request.GetResponse()程序才开始向目标网页发送Post请求          instream = response.GetResponseStream();          sr = new StreamReader(instream, encoding);          //返回结果网页(html)代码          string content = sr.ReadToEnd();          string err = string.Empty;          return content;        }        catch (Exception ex)        {          string err = ex.Message;          return string.Empty;        }      }    }

Edit.aspx内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Edit.aspx.cs" Inherits="test.Edit" %>    <html >    <head runat="server">      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>      <title></title>      <style type="text/css">        .inputstyle {          height: 35px;          line-height: 35px;          text-indent: 5px;          width: 280px;          background-image: url('images/inputbg.gif');          background-repeat: repeat-x;          border-top: solid 1px #a7b5bc;          border-left: solid 1px #a7b5bc;          border-right: solid 1px #ced9df;          border-bottom: solid 1px #ced9df;          float: left;          margin: auto 5px auto 5px;        }        </style>    </head>    <body>      <form id="form1" runat="server">        <table border="1" style="width: 500px; border-collapse: collapse; margin: 20px auto 20px auto; line-height: 40px;">          <tr>            <td style="text-align: right;">分组编号:</td>            <td> <asp:TextBox ID="txtGroupId" CssClass="inputstyle" Enabled="false" runat="server"></asp:TextBox></td>          </tr>          <tr>            <td style="text-align: right;">分组名称:</td>            <td>               <asp:TextBox ID="txtGroupName" CssClass="inputstyle" runat="server"></asp:TextBox>            </td>          </tr>          <tr>            <td></td>            <td>              <asp:LinkButton ID="LinkBtnSet" runat="server" OnClick="LinkBtnSet_Click" ><p style="background-image: url('images/buttonbg.png'); width: 111px; height: 35px; line-height: 35px; float: left; font-weight: bold; text-align: center; color: #fff;"> 设 置</p></asp:LinkButton></td>          </tr>        </table>      </form>    </body>  </html>

Edit.aspx.cs代码:

 public partial class Edit : System.Web.UI.Page    {      protected void Page_Load(object sender, EventArgs e)      {        if (!Page.IsPostBack)        {          if (Request.QueryString["id"] != null)          {            string group_id = Request.QueryString["id"].ToString();            string group_name = Request.QueryString["name"].ToString();            this.txtGroupId.Text = group_id.ToString();            this.txtGroupName.Text = group_name.ToString();            this.txtGroupName.Focus();          }        }      }        /// <summary>      /// 设置      /// </summary>      /// <param name="sender"></param>      /// <param name="e"></param>      protected void LinkBtnSet_Click(object sender, EventArgs e)      {        if (String.IsNullOrWhiteSpace(this.txtGroupName.Text.ToString().Trim()))        {          ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('不能为空!');", true);          this.txtGroupName.Focus();          return;        }        if (this.txtGroupName.Text.Trim().Length > 30)        {          ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('组名称应在30个字符之内!');", true);          this.txtGroupName.Focus();          return;        }          WeiXinServer wxs = new WeiXinServer();        string res = "";          //从缓存读取accesstoken        string Access_token = Cache["Access_token"] as string;          if (Access_token == null)        {          //如果为空,重新获取          Access_token = wxs.GetAccessToken();            //设置缓存的数据7000秒后过期          Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),            System.Web.Caching.Cache.NoSlidingExpiration);        }          string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);          string posturl = "https://api.weixin.qq.com/cgi-bin/groups/update?access_token=" + Access_tokento;          //POST数据例子:POST数据例子:{"group":{"id":108,"name":"test2_modify2"}}          string postData = "{\"group\":{\"id\":\"" + txtGroupId.Text + "\",\"name\":\"" + this.txtGroupName.Text +                 "\"}}";        res = wxs.GetPage(posturl, postData);          //使用Newtonsoft.json        JObject jsonObj = JObject.Parse(res);          //获取返回结果的正确|true|false,        string isright = jsonObj["errcode"].ToString(); //0        string istrueorfalse = jsonObj["errmsg"].ToString(); //ok        if (isright.Equals("0") && istrueorfalse.Equals("ok"))        {          //修改成功之后,刷新父窗体,关闭本页          ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",            "alert('修改成功!如未正常显示,属缓存问题,请重新登录即可!');window.open![这里写图片描述](http://img.blog.csdn.net/20161008103126694)er.location.reload();this.close();", true);        }        else        {          ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('修改失败!');this.close();",            true);        }      }    }

buttonbg.png

结果如图:

以上就是微信公众号中用户分组管理.NET实例详解的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:用ASP.NET实现微信JS-SDK支付的实例详解

相关资讯