




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】微信开发用户分组管理的示例分析
/upload/information/20201208/260/11902.jpg
///
<summary>
///
微信分组类
///
</summary>
public
class
WxGroupsInfo
{
public
string
Group_ID
{
get;
set;
}//分组编号
public
string
Group_Name
{
get;
set;
}//分组名称
public
string
Group_Count
{
get;
set;
}//分组人数
}前台代码:<!DOCTYPE
html>
<html
xmlns="/1999/xhtml">
<head
runat="server">
<meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"/>
<title></title>
<link
href="css/style.css"
rel="Stylesheet"
type="text/css"
/>
<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;
}
a:hover
{
cursor:pointer;
}
.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-image:url('images/th.gif');
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>
<script
src="../js/jquery-1.7.1.min.js"
type="text/javascript"></script>
<script
type="text/javascript">
//修改分组名称调用的函数
function
EditRoster(PayNo,name)
{
//alert(PayNo+":"+name);
var
url
=
'****.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="place">
<span>位置:</span>
<ul
class="placeul">
<li><a
href="WelCome.aspx"
target="rightFrame">首页</a></li>
<li>微信管理</li>
<li>德桥员工服务中心分组管理</li>
</ul>
</p>
<p
class="g_title">分组管理</p>
<p
id="shownewgroup">
<p
class="closeLogin"><a
class="closeloginpage"><span
style="float:left;
color:#08a5e0;
font-size:18px;
text-indent:5px;">新建分组</span>关闭</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
onclick="EditRoster('<%#
Eval("Group_ID")
%>','<%#
Eval("Group_Name")
%>');">修改分组名称</a>
<asp:LinkButton
ID="LinkBtnDeleteGroup"
runat="server"
CommandName="DeleteGroups"
CommandArgument='<%#
Eval("Group_ID")
%>'
>删除分组</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>protected
void
Page_Load(object
sender,
EventArgs
e)
{
if(!Page.IsPostBack)
{
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
=
"/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.dll文件
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;
LinkBtnDeleteGroup.Attributes.Add("OnClick",
"return
confirm('您确定要删除该分组?删除后该分组内的人员即将恢复到默认分组!')");
}
}
///
<summary>
///
执行事件
///
</summary>
///
<param
name="source"></param>
///
<param
name="e"></param>
protected
void
RepeaterGroupList_ItemCommand(object
source,
RepeaterCommandEventArgs
e)
{
//ScriptManager.RegisterClientScriptBlock(this.Page,
this.GetType(),
"",
"alert('删除接口已关闭!');location='WxGroupManageList.aspx';",
true);
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
=
"/cgi-bin/groups/delete?access_token="
+
Access_tokento;
//POST数据例子:
POST数据例子:{"group":{"id":108}}
string
groupid
=
e.CommandArgument.ToString();
string
postData
=
"{\"group\":{\"id\":\""
+
groupid.ToString()
+
"\"}}";
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.ToString().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
=
"/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);
}修改分组名称的页面/upload/information/20201208/260/11903.jpg前台代码:<!DOCTYPE
html>
<html
xmlns="/1999/xhtml">
<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>后台代码:
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.ToString().Trim().Length>30)
{
ScriptManager.RegisterClientScriptBlock(this.Page,
this.GetType(),
"",
"alert('组名称应在30个字符之内!');",
true);
this.txtGroupName.Focus();
return;
}
WeiXinServer
wxs
=
new
WeiXinServer();
st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年法律与规范的职业道德综合测试题及答案
- 2025年甘肃省民航机场集团劳务派遣工招聘45人笔试备考题库及完整答案详解1套
- 物资公司财务管理制度
- 特殊儿童专案管理制度
- 特殊时间安全管理制度
- 特殊行业善后管理制度
- 猪场全程用料管理制度
- 猪场日常针剂管理制度
- 王者战队人员管理制度
- 环保公司内部管理制度
- 印制电路板领域:深南电路企业组织结构及部门职责
- 年产120万吨氧化铝拜尔法生产高压溶出工艺设计
- 《哈尔滨工程大学学报》模板
- DB14T 1049.1-2020 山西省用水定额 第1部分:农业用水定额
- 配载平衡基础培训
- 医疗废物管理相关法律、法规介绍
- 漯河医学高等专科学校辅导员招聘考试行政管理教师岗笔试面试历年真题库试卷
- 政审在校证明
- 变电站一次通流-通压试验方法的探讨与实践
- 线槽灯安装施工工法
- 自由公差对照表(共3页)
评论
0/150
提交评论