2010-03-03 2 views
4

Есть много вопросов, подобных этому, но никто не имеет дело с webforms и C#, которые я нашел.Система голосования Как SO - C#, Asp.net, Webforms

У меня есть Linq к-SQL, вотум таблицы, где я хочу записать записи голоса (Voteup/вниз/время/Ipaddress/пользователя и т.д.)

ли это способ сделать это, или есть лучший способ:

Сделать updown imgs, скрыть идентификатор объекта, который проголосовали где-то там (где?), когда вы нажимаете img jquery, отправляет вас на страницу ashx, которая возвращает true, если она была способна создать голосование записать, а затем установить img в цвет/оттенки серого на основе ответа на страницу ashx?

Бонусные баллы за примеры или ссылки на примеры = 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

Вопрос: Что должен вернуть мой зокс? Кроме того, есть ли способ отправить данные, чтобы я мог знать, является ли это отменой голосования/голосования? – Jason

+0

Я догадываюсь, что мой вопрос - когда это успех: побегите? Когда мой обработчик вернет что-нибудь? Поэтому я могу передать аргументы, отличные от успеха/неудачи – Jason

+0

Не обращайте внимания на мои предыдущие два утверждения. Тогда только я не могу понять, как вызвать ошибку: в $.ajax, когда мой ashx сталкивается с проблемами. Но я над этим работаю;) – Jason

1

Я бы сделал это так, как вы говорите, но в базе данных я бы больше использовал функции реляционной базы данных.

Такие, как таблица пользователей с отношением один-мног к таблице вопросов. Если вы хотите, чтобы они (пользователи) могли задавать вопросы, вам нужна таблица с каждым вопросом пользователей, это другое отношение «один ко многим». Тогда вам также нужна таблица голосов, которая имеет отношения «один ко многим» с таблицей вопросов и таблицей пользователей, поэтому вы можете отслеживать, какой пользователь голосовал по вопросу и какой вопрос он был.

Главное, что если вы правильно используете систему реляционной базы данных, это упростит вашу жизнь для отслеживания вещей в фоновом режиме, и поэтому вы дадите пользователю лучший опыт.

Это одно. Затем сделайте свои изображения для голосования кликабельными, поэтому используйте событие onclick, с JQuery, которое должно быть довольно простым.

Используйте AJAX, чтобы сделать обратную передачу при щелчке по изображению, так что вам не нужно делать сообщение на всей странице каждый раз, когда пользователь голосует. Это также увеличит пользовательский интерфейс. Много учебников на AJAX с ASP.NET.

Надеюсь, это поможет!

+0

Рад слышать, что я на правильном пути. Я уверен, что у меня будет более конкретный вопрос здесь, когда я начну его реализовывать. Благодаря! = D – Jason

Смежные вопросы