问题描述
我有一个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
<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 @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 (将#修改为@)