Обновите div html и контент с помощью ajax - PullRequest
0 голосов
/ 24 февраля 2011

Мне бы хотелось, чтобы у вас была функция, аналогичная ссылке StackExchange в левом верхнем углу сайта переполнения стека.

Насколько я понимаю, после нажатия на ссылку обмена стека происходит следующее:

  • отображается скрытый контейнер div.

  • этот div заполняется html и фактическими данными с использованием ajax (возможно, jquery)

Я заметил, что html и данные не отображаются в разметке страницы, поэтому я думаю, что они, вероятно, извлекаются с использованием javascript / jquery / ajax.

одно примечание - я использую asp.net mvc 2 и linq-to-sql.

Пожалуйста, дайте мне примеры того, как это можно сделать, или, возможно, ссылки на похожие примеры, спасибо.

1 Ответ

0 голосов
/ 24 февраля 2011

Этого можно добиться с помощью методов jQuery и page в коде.

//Gets the list of requests
function getRequestList() {
    // call server-side webmethod using jQuery
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "Index.aspx/GetOrdersForApproving",
        data: "{ }", // send an empty object for calls with no parameters
        dataType: "json",
        success: displayRequests,
        failure: reportError
    });
}

//displays the requests in the ul
function displayRequests(result) {
    // ASP.NET encapsulates JSON responses in a property "d"
    if (result.hasOwnProperty("d")) { result = result.d; }
    // iterate through player list and add info to the markup
    var ul = $("#requestsForApproval");
    for (i = 0; i < result.length; i++) {

        var li = $("<li class='approvalListItem'><div>"
    + "<h3>" + result[i].OrderID + " - " + result[i].Supplier + "</h3>"
+ "</div>"
+ "<div>"
    + result[i].Description
+ "</div>"
+ "<div> "
    + "<table width='100%'>"
        + "<tr>"
            + "<td>"
                 + "Quant: " + result[i].Quantity
            + "</td>"
            + "<td>"
                + "Price: " + result[i].UnitPrice
            + "</td>"
            + "<td>"
                + "Total: " + result[i].Value
            + "</td>"
        + "</tr>"
    + "</table>"
+ "</div>"
  + " <div class='approvalButtons' style='display:none'>"
    + "<ul><li class='approveButton'>Approve</li>"
    + "<li class='rejectButton'>Reject</li></ul>"
+ "</div>"
+ "<input type='hidden' class='hiddenID' name='OrderLineID' value='" + result[i].OrderLineID + "'>"
+ "</li>");
        ul.append(li);
    }

Код сзади:

/// <summary>
/// Gets a list of Request Lines
/// </summary>
/// <returns>List of order lines</returns>
[WebMethod]
public static List<iOrderLine> GetOrdersForApproving()
{
    try
    {
        List<iOrderLine> Lines = new List<iOrderLine>();
        foreach (Objects.Database.OrderLine oOrderLine in Objects.Database.OrderLine.GetLinesWaitingFor(StaticStore.CurrentUser.UserID, int.MinValue))
        {
            Lines.Add(new iOrderLine(oOrderLine));
        }

        return Lines;
    }
    catch (Exception)
    {
        throw;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...