如何在mvc中的所有站点上添加带行编号的计数器

时间:2018-01-02 12:01:10

标签: c# asp.net-mvc-5

我想为所有网页添加订单商品的自动编号。 下面是一个有效的示例,但只有一页上的数字。进入下一页后,它从头开始。

public ActionResult ListaZlecen(int? IdStatusZlecenia, int strona = 1)
        {
            var ListaZlecenWszystkich = db.Zlecenia.ToList();
            var userId = User.Identity.GetUserId();
            //var ListaZlecen = db.Zlecenia.Where(p => p.UserId == userId).ToList();
            //var ListaZlecen = db.Zlecenia.OrderBy(w => w.IdZlecenia).Where(p => p.UserId == userId).Skip((strona - 1) * WielkoscStrony).Take(WielkoscStrony).ToList();
            var ListaZlecen = db.Zlecenia.OrderBy(w => w.IdZlecenia).Skip((strona - 1) * WielkoscStrony).Take(WielkoscStrony).ToList();
            //   var zleceniezalacznik = db.ZleceniaZalaczniki.ToList();

            var viewodel = new ListaZlecenUzytkownikaViewModel()
            {
                StronaInfo = new StronaInfo
                {

                    AktualnaStrona = strona,
                    PozycjeNaStrone = WielkoscStrony,
                    WszystkiePozycje = ListaZlecenWszystkich.Count()

                },
                ListaZlecenUzytkownika = ListaZlecen
            };

            return View(viewodel);
        }

和查看

@model AplikacjaHelpDesk.ViewModels.ListaZlecenUzytkownikaViewModel
@using AplikacjaHelpDesk.Infrastructure;

@{
    ViewBag.Title = "Lista Zlecen Użytkownika";
    Layout = "~/Views/Shared/_LayoutAdministracja.cshtml";
}


<div class="container-fluid">
    <img src="~/Content/Images/Layout/Home.png" />
    <a href="link">
        @Html.MvcSiteMap().SiteMapPath()
    </a>
    <h2><span class="glyphicon glyphicon-user"></span>&nbsp<strong>Lista Zleceń </strong></h2>
    <br /><br />
    <div id="divLoading" class="panel panel-primary text-center text-primary" style="display:none;">
        <h3><strong>Proszę czekać ładowane są posty!</strong></h3>
    </div>
    <div id="divLoadingForm" class="panel panel-primary text-center text-primary" style="display:none;">
        <h3><strong>Proszę czekać ładuję formularz</strong></h3>
    </div>
    @*@if (ViewBag.Informacja != null)
                {
            <div class="alert alert-warning"><h4><strong>@TempData["Dodano-Post"]</strong></h4></div>
        }*@

    <table class="table table-responsive table-striped transactions" style="text-combine-upright:all;">
        <tr style="text-transform: uppercase; text-combine-upright:all;">
            <th>
                <label>Pozycja Nr.</label>
            </th>
            <th>
                <label>Nr Zlecenia</label>
            </th>
            <th>
                <label>Data Przyjęcia Zlecenia</label>
            </th>
            <th>
                <label>Data Planowanego Zakończenia Zlecenia</label>
            </th>
            <th>
                <label>Data zakończenia zlecenia</label>
            </th>
            <th style="width: 160px;"></th>
            <th style="width: 160px;"></th>
        </tr>
        @{ var i = 0;}
        @foreach (var item in Model.ListaZlecenUzytkownika)
        {

            <tr class="panel panel-primary">
                @*
                        <h5><strong>Zlecenie nr: @Html.DisplayFor(modeItem => item.IdZlecenia)</strong></h5>

                <td>
                        @{i++;}
                        @i
                </td>
                <td>
                    <h5><strong>Zlecenie nr: @Html.DisplayFor(modeItem => item.IdZlecenia)</strong></h5>
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.DataPrzyjeciaZlecenia)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.DataPlanowaniaZakonczenia)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.DataZakonczenia)
                </td>
                <td>
                    @Ajax.ActionLink("Pokaż Posty Zlecenia", "_ListaPostow", new { idZlecenia = @item.IdZlecenia }, new AjaxOptions()
               {
                   HttpMethod = "GET",
                   LoadingElementId = "divLoading",
                   UpdateTargetId = "divPozycje",
                   InsertionMode = InsertionMode.Replace

               }, new { @class = "btn btn-primary" })
                </td>
                <td>


                    @Ajax.ActionLink("Dodaj Odpowiedz", "_DodajPost", new { idZlecenia = @item.IdZlecenia }, new AjaxOptions()
               {
                   HttpMethod = "GET",
                   LoadingElementId = "divLoadingForm",
                   UpdateTargetId = "divDodajPozycje",
                   InsertionMode = InsertionMode.Replace

               }, new { @class = "btn btn-primary" })
                </td>

            </tr>
            <tr style="background: #23527c; color:white;">
                <td>
                    <label>Opis załącznika</label>
                </td>
                <td style="width: 120px;">
                    <label>Załącznik</label>
                </td>
            </tr>
            <tr class="panel panel-group">
                <td>
                    @Html.Raw(item.ZleceniaZalaczniki.Opis)
                </td>
                <td>
                    <span class="btn btn-primary">
                        @Html.ActionLink("Pobierz", "Download", "Zlecenia", new { nazwaPliku = @item.ZleceniaZalaczniki.NazwaPliku }, null)
                        <span class="glyphicon glyphicon-download" aria-hidden="true"></span>
                    </span>
                </td>
            </tr>
            <tr id="divDodajPozycje"></tr>
        }
    </table>

    <br />
    <div class="btn-group pull-right">
        @Html.LinkStrony(Model.StronaInfo, x => Url.Action("ListaZlecen", new { strona = x }))
    </div>
    <br />
    <hr />
    <div id="divPozycje">

    </div>
</div>

我试过这种方式,但它只在一个页面上创建编号。从头开始创建下一个编号。

 @{ var i = 0;}
 <td>
    @{i++;}
    @i
 </td>

我每页都有3个订单,我希望所有订单都自动编号,例如: 第一页1,2,3 第二页4,5,6

我正在寻求帮助,为整个订单集创建编号

1 个答案:

答案 0 :(得分:1)

您可以从当前页面开始,而不是从i = 0开始,

我不知道它是哪种语言,但我希望我做对了。

// Instead of this: @{ var i = 0;} - on your view
//Use this:
@{ var i = (Model.AktualnaStrona -1 ) * Model.PozycjeNaStrone ;}

//It should be equal to the calculation you use on the API:
(strona - 1) * WielkoscStrony

//(from this line: )
var ListaZlecen = db.Zlecenia.OrderBy(w => w.IdZlecenia).
Skip((strona - 1) * WielkoscStrony). //--> THIS
Take(WielkoscStrony).ToList();