jQuery插件-jRating评分插件源码分析及使用方法

2020-05-18 09:00:41易采站长站整理

评分字段默认为-1,表示该文章还没有被评分。当然,现在有人会说,这个表设计的很不合理,因为一篇文章不会只评分一次吧,应该每个用户都能进行评论,是的,我们在这里只是为了演示jRating插件利用Ajax进行持久化操作,因为是演示,所以一切从俭。
新建一个Web页面,用来显示第一篇文章(id为1)的标题、内容及评分插件,见前台代码:

<html xmlns=”http://www.w3.org/1999/xhtml”>
<head runat=”server”>
<title></title>
<link href=”Script/jRating/jRating.jquery.css” rel=”stylesheet” type=”text/css” />
<script src=”Script/jquery-1.7.min.js” type=”text/javascript”></script>
<script src=”Script/jRating/jRating.jquery.js” type=”text/javascript”></script>
<script type=”text/javascript”>
$(function () {
$(“.theRating”).jRating({
length: 20,
phpPath: ‘tempAjax.aspx/UpdateComment’ //地址变成了一个aspx类型的WEB页面下的一个静态函数,稍后我们会看到!
});
});
</script>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<asp:Label ID=”Label1″ runat=”server” Text=”标题:”></asp:Label>  
<asp:Label ID=”page1_title” runat=”server” Text=””></asp:Label><br />
<asp:Label ID=”page1_body” runat=”server” Text=””></asp:Label><br />
<div id=”16_1″ class=”theRating”></div>
</div>
</form>
</body>
</html>

后台CS代码如下:

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
tempEntities cbx = new tempEntities(); //用了实体框架获取数据表
var page1 = cbx.jRatingArticles.Where(m => m.id == 1).SingleOrDefault();
page1_title.Text = page1.title;
page1_body.Text = page1.body;
}
}

为了减少数据库连接代码,我用了实体框架,只映射了一张表(jRatingArticle),就是上面我们看到的。获取id为1的文章对象,并把相应属性赋值到Label控件的Text属性中。
页面效果如下
 
我们可以看到上面前台页面的JS代码中,有这样一条语句:
phpPath: ‘tempAjax.aspx/UpdateComment’
它指明了,当鼠标点击插件后,要通过Ajax发送数据的地址,这里我们用.net页面技术来处理这个异步请求。tempAjax.aspx的后台cs代码如下: