2010-03-03 79 views
4

有很多类似的问题,但没有处理我发现的webforms和c#。投票系统像SO - C#,Asp.net,Webforms

我有LINQ到SQL,一个投票表,我想记录的投票记录(Voteup /下/时间/ ip地址/用户等)

这是做或方式是有更好的方法:

使updown imgs隐藏在那里的某个地方被投票的对象的id(在哪里?)当你点击一个img时,jquery发送给你一个ashx页面,如果它能够创建投票返回true记录并根据ashx页面的响应将img设置为彩色/灰度?

积分为例子或链接的例子= d

PS。我在很短的时间内就此发现了很多观点。我将在今晚发布我的最终代码。

回答

1

我想你已经有了大概的想法。您可以使用传统的WebForms AJAX,或使用jQuery $ .ajax()调用来完成整个事情 - 注册投票,返回结果并修改图像。

下面是一个jQuery方法的框架:

的Javascript:

function registerVote(voteType){ 
    $.ajax(function(){ 
      //get the name of the parent DIV 
      //(using the jQuery selector), which is the ID of the thing you're voting on 
      //Use Success and Error callbacks to register a success or error. 
      //On success, change the selected vote image to the highlighted version 
    }) 

} 

HTML:

<div id="ThingToVoteOn1"> 
<img src="voteUp" onclick="registerVote('UP')"> 
<img src="voteDown" onclick="registerVote('DOWN')"> 

</div> 
+0

问题:我的ashx应该返回什么?另外,有没有办法发回数据,以便我可以知道它是否是投票/投票撤消? – Jason 2010-03-03 17:46:27

+0

我想我的问题是什么时候成功:运行?当我的处理程序返回什么?所以我可以传递参数,而不仅仅是成功/失败 – Jason 2010-03-03 18:26:13

+0

不理会我以前的两个陈述。那么只有我无法弄清楚的是如何触发错误:在$。ajax当我的ashx遇到问题时。但我正在努力;) – Jason 2010-03-03 19:21:08

1

我会按照你说的方式去做,但是在数据库中我会更多地使用关系数据库的功能。

如具有与问题表一对多关系的用户表。如果你希望他们(用户)也能够提问,那么你需要一个包含每个用户问题的表格,即另一个一对多的关系。然后,您还需要一张与问题表和用户表具有一对多关系的投票表,以便您可以跟踪哪个用户对该问题投了赞成票以及该问题是哪个问题。

最主要的是,如果您正确使用关系数据库系统,它会让您的生活更轻松地跟踪背景中的事物,因此您将为用户提供更好的体验。

这是一回事。然后让你的投票图像可点击,所以使用onclick事件,与JQuery应该是非常简单的。

使用AJAX在点击图片时进行回发,所以您不必在每次用户投票时在整个页面上发布帖子。这也会增加用户体验。 有很多关于AJAX与ASP.NET的教程。

希望这有些帮助!

+0

很好听,我在正确的轨道上。我确信一旦我开始实施它,我会在这里稍微提出一个更具体的问题。谢谢! = D – Jason 2010-03-03 17:24:49