【发布时间】:2021-04-21 17:33:33
【问题描述】:
我正在使用 Blazor 服务器页面。我需要重置为我的组件onClick 的初始状态。我正在使用StateHasChanged(),它在单击update 按钮时被调用,但不会将input 字段重置为初始值。
我的组件如下所示。
@using DataAcessLibrary;
@using TableMaintenance.Models
@using TableMaintenance.Data;
@if (dr != null)
{
int count = 0;
<tr>
<td style="padding:0px"><button type="button" class="btn btn-link btn-sm" style="padding:0px" @onclick="@DeleteRow"><img src="/images/x-square.svg" /></button></td>
@foreach (var item in dr.ItemArray.Where((a, b) => ColDisplayIndex.Contains(b)))
{
string id = ColumnsList[ColDisplayIndex[count++]].ToString();
<td style="padding:0px;">
<DataRowInput Id="@id" Input=@(item.ToString()) OnChangeDropDown="@AddDropDownValue" OnChangeInput="@AddInputValue" />
</td>
<td>
<input type="text" />
</td>
}
<td style="padding:0px">
<button style="padding:3px;margin:0px" type="button" class="btn btn-light btn-sm" @onclick="@UpdateRow">update</button>
</td>
</tr>
}
我的主要目标是在单击update 按钮时将DataRowInput 重置为其初始状态。我使用输入字段进行测试,它也不会重置(我输入的输入即使在单击update 按钮后仍保留在那里)。我是 Blazor 的新手,我能找到重新渲染组件的唯一方法是通过 StateHasChanged。但这并不是将值重置为其初始状态。下面给出更新方法
public void UpdateRow()
{
StateHasChanged();
}
StateHasChanged() 可以做到这一点还是有其他方法?
【问题讨论】:
-
如果我的回答回答了您的问题,您能否将其标记为正确答案?