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

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

结果如图:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


网页授权获取用户信息的方法
报错config:invalid signature的解决方案
微信开发百思不得姐实战教程
详解微信开发input输入框
教你libco是如何支撑巨大数据信息量的
微信二次开发之文本消息请求与发送
微信开发H5轻游戏
scroll-view完成列表页的方法详解
Java微信开发之自定义菜单的创建
微信开发之input控件的实例详解
微信开发Emoji表情的实例教程
微信开发中详解textarea的使用方法
微信开发中使元素占满全屏的方法介绍
微信开发之数据访问的方法详解
微信二次开发之各类型消息封装
微信开发之数据库操作
如何获取微信好友的地理位置信息
分享3款微信开发开源框架
微信开发之获取服务器IP
微信开发之公交换乘功能代码详解