关闭

善良公社—JS加我好友

1165人阅读 评论(38) 收藏 举报

  善良公社中有项“”加我好友“的功能,刚开始点击的时候一直加不上。这里分享一下我的做法。

  Form表单作为传参数使用

  

  <form id="Form1">
   <input id="Hidden1" name="userid" type="hidden" />
     <input id="Hidden2" name="test" type="hidden"  />
   </form>

Web页面是用Repeater控件来绑定数据

<asp:Repeater ID="userinfo" runat="server">
<ItemTemplate>                                                                                                          <tbody>                                                                                                            <tr>
       <td>                                                                                                                 <a href="#" id="addFriend" onclick="makeFriends(<%#Eval("UserID") %>);return false;">加为好友
       </a>
      </td> 
     </tr>

刚开始的时候在<a>标签中用title属性来绑定了UserID,但是只能第一次加好友成功,其余加其他人都默认是同样的一个UserID,实在没办法了,让小崔哥指点了一下,就是在事件中传递参数。

Js中写法是

function makeFriends(friendid) {
//获取当前登陆用户名字
        var val = "<%= Session["UserName"]==null?"":Session["UserName"] %>"; 
       //获取当前登陆的用户ID
        var id = '<%=Session["UserID"] %>';
        if (val == "") {
            alert("请先登录之后,再进行相关的操作");
            return false;
        } else {
            document.getElementById("test").value = "add"  //表示处理程序中的类型是添加好友
            test = document.getElementById("test").value;   //
            document.getElementById("userid").value =friendid //获取加好友的ID
            userid = document.getElementById("userid").value;
            //登陆的ID和添加用户的ID一致则判断
            if (id ==friendid) { 
                alert("不能添加本人为好友!")
                return;
            }
            $.messager.confirm("提示", "你要添加他为好友吗?", function (r) {
                if (r) {
                    //提交表单
                    $.ajax({
                        type:"post",
                        url: "AddFriend.ashx?test=" + test + "&userid="+userid,  //传递给一般处理程序
                       
                        //判断结果是否正确
                        success: function (data) {
                            if (data == "T") {
                                alert('恭喜您,添加好友成功!');
                            }
                            else {
                                if (data == "A") {
                                    alert("该好友已经添加!");
                                } else
                                {
                                    alert('添加好友失败,请重新操作!');
                                }
                            }
                        },
                        error: function (XmlHttpRequest, textStatus, errorThrown) {
                            alert(XmlHttpRequest.responseText);
                        }
                    })
                }
            })
        }
}

一般处理程序中

public void ProcessRequest(HttpContext context)
        {
            string command = context.Request.QueryString["test"];//标记是事件的类型:增删改
            if (command == "add")
            {//调用添加方法
                Add(context);
            }

        }

        /// <summary>
        /// 添加好友
        /// </summary>
        /// <param name="context"></param>
        public void Add(HttpContext context)
        {
            FriendConnectionEntity enfcon = new FriendConnectionEntity();//实例化一个实体类
            enfcon.FriendID = context.Request.QueryString["userid"];//前台传的标示值,选择的用户ID
            if (context.Session["UserID"] == null)
            {
                context.Response.Write("F");
            }
            else
            {
                enfcon.UserID = context.Session["UserID"].ToString();
            }
            enfcon.State = "待定";
            FriendConnectionBLL fcon = new FriendConnectionBLL();//实例化一个B层
            try
            {
                //判断该好友是否已经添加
                if (fcon.IsExistFriend(enfcon))
                {
                    context.Response.Write("A");  //该好友已经添加过
                }
                else
                {
                    //好友没有添加过,查看是否添加成功
                    if (fcon.Add(enfcon))
                    {
                        context.Response.Write("T");
                    }
                    else
                    {
                        context.Response.Write("F");
                    }
                }
            }

            catch (Exception ex)
            {

            }
        }

 这样加为好友的功能就完美实现了。

这样的一个小功能折腾了半天,知道了在事件中也可以传递参数,了解了一下ajax的用法,和传递一般处理程序并返回值的过程。其实学到的东西也蛮多的。善良公社1.0即将完本,整理吸收一下大家的知识,开始进行下一步的学习。



0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:193109次
    • 积分:5599
    • 等级:
    • 排名:第4645名
    • 原创:81篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1252条
    最新评论