如何在blazor中使用syncfusion获得带有自定义操作列的选定行



我在blazor中使用syncfusion网格。

这是我的剃刀:

<div class="card-outer p-0">
<div class="grid-table">
<EjsGrid DataSource="@ManufacturedCoupons" AllowPaging="true">
<GridPageSettings PageCount="5" PageSize="5"></GridPageSettings>
<GridColumns>
<GridColumn Field=@nameof(Coupon.MaterialIdType) HeaderText="@CommonResource.MaterialID" Width="130" TextAlign="TextAlign.Center"></GridColumn>
<GridColumn Field=@nameof(Coupon.MaterialId) HeaderText="@CommonResource.MaterialID" Width="130" TextAlign="TextAlign.Center"></GridColumn>
<GridColumn Field=@nameof(Coupon.LotNo) HeaderText="@CommonResource.LotNo" Width="100" TextAlign="TextAlign.Center"></GridColumn>
<GridColumn Field=@nameof(Coupon.ArrivalDate) HeaderText="@CommonResource.DeliveryDate" TextAlign="TextAlign.Center" Width="150"></GridColumn>   
<GridColumn HeaderText="@CommonResource.Action" TextAlign="TextAlign.Center" Width="120">
<Template>
@{
<div class="actions">
<a href="javascript:void(0);" title="@CommonResource.SendToStock"><img src="images/export.svg" alt="@CommonResource.SendToStock" @onclick="SendToStockClicked()"></a>
</div>
}
</Template>
</GridColumn>
</GridColumns>
</EjsGrid>
</div>
</div>

这是我在代码隐藏文件中的方法:

protected void SendToStockClicked(Coupon coupon)
{
}

我想在单击操作按钮时传递此方法中选定的行数据。

我怎样才能做到这一点?

我不熟悉syncfusion。。。我只认识布拉佐。我从Blazor那里了解到,如果你想调用一个方法并给它传递一个值,你应该使用lambda表达式。假设您在网格中有一个名为MyCoupon的对象,类型为Coupon,并且您希望将其传递给一个称为SendToStockClicked的本地方法。。。这就是您如何调用SendToStockClicked:

@onclick="@(() => SendToStockClicked(MyCoupon))"

顺便说一句,这个"javascript:void(0);"是JavaScript,你不应该在Blazor中使用JavaScript。。。

希望这能帮助。。。

编辑

你说得对一半。这确实对我有帮助,所以我把它标记为真的,但我仍然需要做一些修复,我把它放在这里。

<Template>
@{
var couponData = (context as Coupon);
<div class="actions">
<a href="javascript:void(0);" 
title="@CommonResource.SendToStock" 
@onclick="(()=> SendToStockClicked(couponData))"> 
<img src="images/export.svg" 
alt="@CommonResource.SendToStock">
</a>
</div>
}
</Template>

在这里,我必须使用couponData来发送我的自定义方法对象。

相关内容

  • 没有找到相关文章

最新更新