用Repeater绑定数据,点赞功能,老大催着要,也没有太大的访问量暂时没写 数据并发

后台写方法读出点赞数据

开始写jQuery

//jquery基本语法就不细说了

<script type="text/javascript">
    $(function(){
    $(".img_zan").mouseover(function(){
      $(this).children().attr("src","images/t_fwsc/Thumb_mouseover1.png");
    });
      $(".img_zan").mouseout(function(){
       $(this).children().attr("src","images/t_fwsc/s-4.png");
    });
    $(".img_zan").click(function(){   
      $(this).children().attr("src","images/t_fwsc/Thumb_up2.png");
//      $(".add0").removeClass("add_1");
//      $(".add0").addClass("add_piao");
//      $(".add0").animate({top:"-100px",opacity:'0'},"slow");

/******************************加一样式开始******************************/
    $(this).next().children().children().next(".add0").removeClass("add_1");
    $(this).next().children().children().next(".add0").addClass("add_piao");
    $(this).next().children().children().next(".add0").animate({top:"-200px",opacity:'0'},"slow");

/******************************加一样式开始******************************/
      var _a= parseInt($(this).next().text());//当前点赞数
      var b="1";//嘻嘻,命名不规范了,测试用的
      var masterId=$("#MasterId").val();//用户Id
      var orgId=$(this).siblings("#OrgId").val();//联盟医院Id

//之前接触过Ajax,好久不写前端快忘干净了,看了看Jquery的API  ----》》》http://www.w3school.com.cn
     $.ajax({
     url:"/ashx/MasterPraiseAjax.ashx",   //发送请求的地址 Get请求方式
     data:{WebName:b,masterId:masterId,OrgId:orgId},//参数 必须以键值对传递 master
     async:false,//类型:Boolean 默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

     success:function(data){ //返回值

     if(data=="-1")//未登录情况下跳转
     {
      location.href = "Login.aspx"; //location.href实现客户端页面的跳转  
     
     }else if(data=="1"){ //点赞
       _a+=1;
      //alert(data);
     }else if(data=="0"){ //取消点赞
       _a-=1;
      
     }else{
      _a+=1;
      
     }
   
     }
     });
    
      $(this).next().children().text(_a);//给点赞数量重新赋值 (+1or-1)
 
$(this).removeClass("img_zan").addClass("img0");
$(this).next().removeClass("zanshu").addClass("zanshu0");
    });
     
     });
    </script>


//下面是一般处理程序

using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Web.SessionState;
using Common;
using Model.Linq;

namespace Web.ashx
{
    /// <summary>
    /// $codebehindclassname$ 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class MasterPraiseAjax : IHttpHandler, IReadOnlySessionState
    {

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

//Ajax传递的参数值
            string a = context.Request.QueryString["WebName"];
            string masterId = context.Request.QueryString["masterId"];
            string orgId = context.Request.QueryString["orgId"];
            try
            {
                if (masterId.IsNullOrEmptyOrWhiteSpace())
                {
                    context.Response.Write("-1");
                }
                else
                {

//一下就是点赞状态的操作的  数据量大的话不建议用如下写法,之后会研究一下 并发点赞  偷了懒了
                    if (!a.IsNullOrEmptyOrWhiteSpace())
                    {
                        phDataContext ph = new phDataContext();
                        PetMasterPraise prais = ph.PetMasterPraise.Where(p=>p.PetMasterId==Convert.ToInt32(masterId)&&p.SourceId==Convert.ToInt32(orgId)&&p.SourceType==2).FirstOrDefault();
                        //点赞
                        if (prais == null)
                        {
                            PetMasterPraise praise = new PetMasterPraise();
                            praise.PetMasterId = Convert.ToInt32(masterId);
                            praise.SourceId = Convert.ToInt32(orgId);
                            praise.SourceType = 2;
                            praise.CreateDate = DateTime.Now;
                            praise.State = 1;
                            praise.Title = "联盟点赞";
                            ph.PetMasterPraise.InsertOnSubmit(praise);
                            ph.SubmitChanges();
                            context.Response.Write(praise.State);

}
                            //点赞
                        else if (prais.State == 0)
                        {
                            prais.State = 1;
                            ph.SubmitChanges();
                            context.Response.Write(prais.State);

}
                        else
                        {
                            //取消点赞
                            prais.State = 0;
                            ph.SubmitChanges();
                            context.Response.Write(prais.State);

}

}
                }
            }
            catch (Exception ex)
            {

LogHelper.WriteLog("联盟点赞异常",ex);
            }
            
        }

public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}


<div style="height: 30px; width: 150px; float: left; border: 0px;">

<input type="hidden" id='OrgId' value='<%#Eval("Id") %>' />
            <div class="img_zan">  
            <img src="data:images/t_fwsc/s-4.png" /></div>
             <div style="height: 30px; width: 60px; float: left; border: 0px;">
               <span class="zan_span"><span class="zanshu"><%# StarCount(Eval("Id"),2) %></span><span class="add_1 add0">+1</span>
              </span>
              </div>
                <input type="hidden" runat="server" id="hidPar" value="" />
                <div style="height: 30px; width: 20px; float: left; border: 0px;">
                 </div>
                   <div style="height: 30px; line-height: 30px; width: 40px; float: left; border: 0px;">
                     点赞
                   </div>
                   </div>

小白一枚  写的多有不合理的地方会慢慢改进...


ajax点赞功能的更多相关文章

  1. JavaScript cookie操作实现点赞功能

    JavaScript cookie操作实现点赞功能 参考实现原理,但是代码不够简洁,简洁代码参考:js操作cookie 实现一个点赞功能十分简单,主要问题在于不能重复点赞.  若是一个有用户的网站,可 ...

  2. div中加入iframe,可以实现Ajax的功能

    div中加入iframe,可以实现Ajax的功能,如果查询的时候,比如说城市的选择,用Ajax去实现, 在.net 可以考虑用UpdatePanel,但是点击了查询刷新表格(表格需要重新刷新加载,非纯 ...

  3. JavaScript实现评论点赞功能

    通过分析评论功能的逻辑关系,学会如何使用JavaScript实现评论.回复.点赞等各种功能 1.学会JavaScript处理日期和时间. 2.掌握Dom操作中的添加/删除子节点方法. 3.使用setT ...

  4. 基于微信小程序的用户列表点赞功能

    代码地址如下:http://www.demodashi.com/demo/13997.html 一.前言 (1).适合人群 1.微信小程序开发者 2.前端工程师 3.想入门学习小程序开发的人员 4.想 ...

  5. 全栈项目|小书架|微信小程序-点赞功能实现

    微信小程序端的点赞功能其实没什么好介绍的,无非就是调用接口改变点赞状态和点赞数量.需要注意的是取消点赞时的处理,我这里为了减少服务器接口的调用,直接本地存一个变量,修改这里的变量值即可. 由于源码都相 ...

  6. 全栈项目|小书架|服务器端-NodeJS+Koa2 实现点赞功能

    效果图 接口分析 通过上面的效果图可以看出,点赞入口主要是在书籍的详情页面. 而书籍详情页面,有以下几个功能是和点赞有关的: 获取点赞状态 点赞 取消点赞 所以项目中理论上与点赞相关的接口就以上三个. ...

  7. 项目:jSon和Ajax登录功能

    组件化网页开发 / 步骤二 · 项目:jSon和Ajax登录功能 要熟练编写封装的$.ajax({........})

  8. Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现

    在这之前已经把编辑个人的所有信息的功能已经完成了 之后先对首页的列表搞动态的,之前都是写死的静态 1.之前都是把好友写死的,现在就在js里面定义一个数组,用循环来动态的绑定 在onReady中定义,取 ...

  9. JavaWeb网上图书商城完整项目--day02-6.ajax校验功能之页面实现

    1 .现在我们要在regist.js中实现ajax的功能,使用用户名到后台查询是否注册,邮箱是否到后台注册,验证码是否正确的功能 我们来看regist.js的代码 //该函数在html文档加载完成之后 ...

随机推荐

  1. URL格式

    URL由三部分组成:资源类型.存放资源的主机域名.资源文件名. URL的一般语法格式为: (带方括号[]的为可选项): protocol :// hostname[:port] / path / [; ...

  2. Elasticsearch——分词器对String的作用

    更多内容参考:Elasticsearch学习总结 关于String类型--分词与不分词 在Elasticsearch中String是最基本的数据类型,如果不是数字或者标准格式的日期等这种很明显的类型, ...

  3. .NET平台下IIS7.5+无后缀名伪静态实现办法

    首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式: 部署好站点,并将此站点的应用程序池设置为nettest; 选中站 ...

  4. 【分享】学长的安利来了~~O(∩_∩)O

    前言:应栋哥要求,学长把演讲稿稍微整理下发布出来,这可以算是一篇安利文,也可以说是一篇经历文吧.作为一个确确实实从软工里收获到挺多东西的过来人,学长希望可以通过学长的经历来让你们对软工更加期待. 安利 ...

  5. Visual Studio 技能GET

    常用快捷键 自动生成头部注释 代码片段 NuGet Team Foundation 常用的VS快捷键 查看与设置快捷键 一般在菜单里面我们直接就可以看到一些功能的快捷键.另外,可以依次通过 菜单栏-工 ...

  6. C#协变和逆变

    我们知道在C#中,是可以将派生类的实例赋值给基类对象的.

  7. .Net语言 APP开发平台——Smobiler学习日志:Poplist控件在APP中的应用场景以及代码

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...

  8. var 的使用

    List<Enterprise> epList = ViewBag.epList; foreach (var item in epList){ //todo ... } 当 List< ...

  9. 从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...

  10. 常用Eclipse快捷方式

    Ctrl+1 快速修复 Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交互位置(特 ...