/ / asp.net - Implementierung der Benutzerbenachrichtigung - jquery, asp.net

asp.net - Benutzerbenachrichtigungsimplementierung - jquery, asp.net

Ich füge meiner Site eine Benachrichtigungsleiste vom Typ stackoverflow-esq hinzu. Auf der Serverseite füge ich divs zur Anzeige hinzu:

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);

}

Der clientseitige Code lautet:

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

Ich habe eine Tabelle, die alle Nachrichten enthältfür alle Benutzer und hat einen messageID-Primärschlüssel. Bei einigen Ereignissen werden der Tabelle Nachrichten hinzugefügt, und Meldungen, die nicht abgewiesen werden können, werden bei anderen Ereignissen entfernt. Was ich tun möchte, ist die Nachricht als "Abgewiesen" zu markieren, sobald der Benutzer auf die Abbruchschaltfläche klickt.

Ich bin nicht sicher, wie ich das machen soll. Könnte mir bitte jemand die richtige Richtung weisen?

p.s. Ich bin auch offen für alle Kommentare zu dem serverseitigen / clientseitigen Code, den ich bisher habe.

Antworten:

1 für die Antwort № 1

Wenn ich Ihre Bedürfnisse verstehe, möchten Sie die Abweisung auf Serverseite genehmigen.

Versuchen :

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

Was Sie tun müssen, ist, diese dismiss.asp zu erstellen, indem Sie eine ID erhalten, die auf die folgende Adresse gedrückt wird:

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

Antworte ich auf deine Frage?


1 für die Antwort № 2

Fügen Sie Ihrem Projekt den WCF-Rest-Service hinzu und definieren Sie einen Betriebsvertrag, der folgendermaßen aussieht:

(Pseudo)

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

Rufen Sie in jQuery einfach Ihren WCF-Service wie folgt auf:

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

Zur weiteren Lektüre schlage ich vor, diesen Artikel zu lesen: http://www.codeproject.com/KB/ajax/jQueryWCFRest.aspx