如何正确利用我的blazor分页功能

问题描述

我有一个blazor页面,该页面带有用于从数据库搜索交易的参数。我也继续尝试添加分页功能。我遇到的问题是,我没有显示分页显示所有结果。

这是我的表格

<EditForm Model="formValues" OnValidSubmit="@SearchTransactions">

            <DataAnnotationsValidator />
            <MatThemeProvider Theme="@theme">
                <div class="row text-center">

                    <div class="col-6 text-right pb-3">
                        @*<MatSlideToggle @onclick="@(() => NextTransactions.Clear())" @bind-Value="@CheckDateRange"></MatSlideToggle>
                            <span>Switch View</span>*@
                    </div>


                </div>
                <div class="row formRow">
                    <div class="col-12 text-center pb-2">
                        <MatSelect Label="Region" @bind-Value="@formValues.Region">
                            @foreach (var region in Regions)
                                    {
                                <MatOptionString Value="@region.Id.ToString()">@region.Description</MatOptionString>
                                    }


                        </MatSelect>
                        <ValidationMessage For="@(() => formValues.Region)" />
                    </div>
                    <div class="col-12 text-center pb-2">
                        <MatSelect Label="Status" @bind-Value="@formValues.ProcessValue">
                            <MatOptionString Value="1">Processed</MatOptionString>
                            <MatOptionString Value="0">Waiting</MatOptionString>
                            <MatOptionString Value="2">Approved</MatOptionString>
                            <MatOptionString Value="3">Declined</MatOptionString>

                        </MatSelect>

                    </div>
                    <div class="col-12 text-center pb-2">
                        <MatDatePicker Label="Start Date" @bind-Value="@formValues.TxnDate" Format="MMM/dd/yyyy"></MatDatePicker>

                        <ValidationMessage For="@(() => formValues.TxnDate)" />
                    </div>


                    <div class="col-12 text-center pb-3">
                        <MatButton Raised="true" Type="submit">Search</MatButton>
                    </div>

                </div>
            </MatThemeProvider>
        </EditForm>

我的表单在页面底部带有分页按钮

@if (transactions == null)
        {

        }
        else
        {
            if (transactions.Count == 0)
            {
                <div class="row">
                    <div class="col-12 text-center pt-5">
                        <h1>No Record Found</h1>
                    </div>
                </div>
            }
            else
            {
                <div class="row text-right">
                    <div class="col-12 p-3">
                        <button class="btn btn-outline-success" @onclick="@(() => DownloadExcel(formValues.Region,formValues.TxnDate,formValues.IsProcessed,formValues.ProcessValue))">
                            Export to Excel&nbsp;
                            <i class="fa fa-file-excel" aria-hidden="true"></i>
                        </button>
                    </div>
                </div>

                <table class="table">


                    @foreach (var transaction in transactions)
                    {
                        <thead style="font-size:12px;">
                            <tr>

                                <th>Transaction Date</th>
                                <th>Original Date</th>
                                <th>Trace Number</th>
                                <th>Processing Code</th>

                                <th>Retrieval Number</th>
                                <th>Advice Response Code</th>
                                <th>Processed Date</th>


                            </tr>
                        </thead>

                        <tbody style="border-bottom-style:solid; border-bottom-color:black;font-size:12px;">
                            <tr class="tableInfo">

                                <td>@transaction.ProcessedDate</td>
                                @{
                                    string newtransmissionDate = transaction.TransmissionDate;
                                    string newtransmissionTime = transaction.TransmissionTime;

                                    string modifiedTransmissionDate = newtransmissionDate.Insert(2,"/");

                                    string firstmodTime = newtransmissionTime.Insert(2,":");
                                    string SecondmodTime = firstmodTime.Insert(5,":");
                                }
                                <td>@modifiedTransmissionDate&nbsp;@SecondmodTime</td>
                                <td>@transaction.SystemTraceNumber</td>
                                <td>@transaction.ProcessingCode</td>
                                <td>@transaction.RetrievalReferenceNumber</td>
                                <td>@transaction.AdviceResponseCode</td>
                                <td>@transaction.ProcessedDate</td>

                            </tr>

                            <tr>
                                <th>Source Amount</th>
                                <th>Source Currency</th>
                                <th>Card Holder Amount</th>
                                <th>Card Holder Amount Currency</th>
                                <th>Account Number</th>
                                <th>Transaction Identifier</th>
                                @if (transaction.MultipleClearingSequenceCount != "00")
                                {
                                    <th>Multiple Clearing Count</th>
                                }



                            </tr>


                            <tr class="pb-5">
                                <td>@transaction.SourceAmount</td>
                                <td>@transaction.SourceCurrency</td>
                                <td>@transaction.CardholderAmount</td>
                                <td>@transaction.CardholderAmountCurrency</td>
                                <td>@transaction.BankAccountNumber</td>
                                <td>@transaction.TransactionIdentifier</td>
                                @if (transaction.MultipleClearingSequenceCount != "00")
                                {
                                    <td>@transaction.MultipleClearingSequenceNumber of @transaction.MultipleClearingSequenceCount</td>
                                }

                                @foreach (var txn in MultiClearTxns)
                                {
                                    if (transaction.Id == txn.RecId)
                                    {
                                        if (transaction.MultipleClearingSequenceCount != "00")
                                        {
                                            <td>
                                                <MatButton Style="background-color:#002888 !important; font-size:12px !important;" @onclick="@(e => GetMultiClear(transaction.Id))" Raised="true">MultiClear Info</MatButton>

                                            </td>
                                        }

                                        else
                                        {

                                        }
                                    }

                                }


                            </tr>


                        </tbody>
                    }



                </table>
                <MatDialog @bind-IsOpen="@dialogIsOpen">
                    <MatThemeProvider Theme="@theme">
                        <MatDialogTitle>MultiClear Information</MatDialogTitle>

                        <MatDialogContent>
                            @if (MultiClearTxns == null)
                            {

                            }
                            else
                            {
                                if (MultiClearTxns.Count == 0)
                                {
                                    <h1>No Records found</h1>
                                }
                                else
                                {



                                    @foreach (var txn in MultiClearTxns)
                                    {
                                        <div class="row">
                                            <div class="col-12 text-center">
                                                <p class="col-form-label">Processed Date:</p> <p>@txn.ProcessedDate</p>
                                            </div>
                                            <div class="col-12 text-center">
                                                <p class="col-form-label">Reference Number:</p>  <p> @txn.RetrievalReferenceNumber</p>
                                            </div>
                                            <div class="col-12 text-center">
                                                <p class="col-form-label">Authorization Number:</p>  <p> @txn.AuthorizationNumber</p>
                                            </div>
                                            @if (CurrencyList == null)
                                            {

                                            }
                                            else
                                            {


                                                @foreach (var CurrencyTxn in CurrencyList)
                                                {
                                                    <div class="col-12 text-center">
                                                        <p class="col-form-label">Source Currency:</p><p>@CurrencyTxn.SourceCurrency</p>
                                                    </div>
                                                    <div class="col-12 text-center">
                                                        <p class="col-form-label">Card Holder Currency:</p><p> @CurrencyTxn.CardholderAmountCurrency</p>
                                                    </div>
                                                }
                                            }
                                            <div class="col-12 text-center">
                                                <p class="col-form-label">Card Holder Amount:</p>  <p> @txn.CardholderAmount</p>
                                            </div>
                                            <div class="col-12 text-center">
                                                <p class="col-form-label">Source Amount:</p> <p> @txn.SourceAmount</p>
                                            </div>
                                            <div class="col-12 text-center">
                                                <p class="col-form-label">Response Code:</p> <p> @txn.AuthResponseCode</p>
                                            </div>
                                        </div>

                                    }
                                }

                            }
                        </MatDialogContent>
                        <MatDialogActions>

                            <MatButton Style="background-color:#002888 !important; color:white !important;" OnClick="@(e => { dialogIsOpen = false; })">Close</MatButton>

                        </MatDialogActions>
                    </MatThemeProvider>
                </MatDialog>


            }
            for (int p = 1; p <= transactions.Count() / pageSize; p++)
            {
                <button type="button" @onclick="(e=>HandleChangePage(p))">@p</button>
            }
        }

我用来从数据库获取结果的服务

        public async Task<List<Eod400DebitExtract>> SearchExtractsSimple(string Region,DateTime? Date,bool Status,string statusString)
        {
            IQueryable<Eod400DebitExtract> queryable = null;
            

            if (statusString == "2")
            {
                queryable = context.Eod400DebitExtract.Where(s => s.AbmRegionRecordId == Region)
                            .Where(s => s.ProcessedDate >= Date)
                            .Where(s => s.AdviceResponseCode == "00")
                            .Where(s => s.Processed == true).AsQueryable();
            }

            else if (statusString == "3")
            {
                queryable = context.Eod400DebitExtract.Where(s => s.AbmRegionRecordId == Region)
                            .Where(s => s.ProcessedDate >= Date)
                            .Where(s => s.AdviceResponseCode != "00")
                            .Where(s => s.Processed == true).AsQueryable();
            }

            else if (Status == true)
            {
                queryable = context.Eod400DebitExtract.Where(s => s.AbmRegionRecordId == Region)
                              .Where(s => s.ProcessedDate >= Date)
                              .Where(s => s.Processed == Status).AsQueryable();
            }
            else if (Status == false)
            {
                queryable = context.Eod400DebitExtract.Where(s => s.AbmRegionRecordId == Region)
                              .Where(s => s.ProcessedDate >= Date)
                              .Where(s => s.Processed == Status).AsQueryable();
            }
            else
            {
                queryable = context.Eod400DebitExtract.Where(s => s.AbmRegionRecordId == Region)
                              .Where(s => s.ProcessedDate >= Date).AsQueryable();
            }
            return await queryable.ToListAsync();
        }

最后,我的功能是根据单击的按钮跳到页面

    void HandleChangePage(int p)
    {
        pageNumber = p;
        var page = transactions.Skip((p - 1) * pageSize).Take(pageSize);
    }

任何帮助将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...