/ / asp.net - implementacja powiadomień użytkownika - jquery, asp.net

asp.net - implementacja powiadomień użytkownika - jquery, asp.net

Dodaję pasek powiadomień typu stackoverflow-esq do mojej witryny. Po stronie serwera dodaję elementy div do wyświetlania:

for (int i = 0; i < dt.Rows.Count; i++ )
{
string script = "<div class="hover-notification" style="display:none;">";
script += dt.Rows[i]["messageText"].ToString();
if ((bool)dt.Rows[i]["canDismiss"] == false)
script += "<span class="dismiss"><a title="Dismiss notification">x</a></span>";
script += "</div>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript" + i, script);

}

Kod po stronie klienta to:

$(document).ready(function () {
$(".hover-notification").prependTo("body").slideDown("slow");
$(".dismiss").click(function () { $(this).parent().slideUp("slow").remove(); });
});

Mam tabelę zawierającą wszystkie wiadomościdla wszystkich użytkowników i ma klucz podstawowy messageID. Wiadomości są dodawane do tabeli w przypadku niektórych zdarzeń, a wiadomości, które nie są odrzucane, są usuwane w innych wydarzeniach. Chcę zaznaczyć wiadomość jako odrzuconą, gdy użytkownik kliknie przycisk zamknięcia.

Nie jestem pewien, jak to zrobić. Czy ktoś mógłby wskazać mi właściwy kierunek?

p.s. Jestem również otwarty na wszelkie uwagi dotyczące kodu po stronie serwera / klienta, które dotychczas miałem.

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli rozumiem Twoje potrzeby, chcesz zatwierdzić odwołanie po stronie serwera.

Próbować :

$(".dismiss").click(function () {
$(this).parent().slideUp("slow").remove();
// ajax request to server
$.get("dismiss.asp?id="+this.id);
});

Co musisz zrobić, to stwórz ten plik dismiss.asp, otrzymując identyfikator świeżo wciśnięty na:

<a id="123" class="dismiss">x</a>

Czy odpowiadam na twoje pytanie?


1 dla odpowiedzi nr 2

Dodaj usługę WCF Rest-service do projektu i zdefiniuj kontrakt operacyjny, który wygląda następująco:

(Rzekomy)

 [OperationContract]
[WebGet(UriTemplate = "MyService/DismissMessage({x})")]
public bool DismissMessage(int id) {
var success = MyLibrary.DismissMessage(id);
return success;
}

W jQuery wystarczy wywołać usługę WCF w następujący sposób:

$.getJSON("MyService/DismissMessage("+messageId+")", function(data) {
// do something on success or fail
}

Aby przeczytać więcej, proponuję sprawdzić ten artykuł: http://www.codeproject.com/KB/ajax/jQueryWCFRest.aspx