Syncfusion Grid 添加按钮不触发
Syncfusion Grid Add button does not fire
我有网格更新、删除功能,但 "add" 按钮不起作用(即我单击 "add" 按钮但 "insert" 事件未触发)。社区是否会对我可能做错的事情提出意见?
Settings.cshtml:
@Html.AntiForgeryToken()
<ejs-grid id="GridNewKeywords" allowPaging="true" load="onLoad" toolbar="@( new List<object>() {" Add","Edit","Delete","Update","Cancel"})">
<e-grid-editsettings allowAdding="true" allowDeleting="true" allowEditing="true" />
<e-data-manager url="/Settings?handler=DataSource" insertUrl="/Settings?handler=Insert" updateUrl="/Settings?handler=Update" removeUrl="/Settings?handler=Delete" adaptor="UrlAdaptor" />
<e-grid-pageSettings pageCount="5" pageSize="5" />
<e-grid-columns>
<e-grid-column field="KeywordId" headerText="Id" isPrimaryKey="true" width="0" allowEditing="false" />
<e-grid-column field="UserId" headerText="UserId" isPrimaryKey="true" width="0" allowEditing="false" />
<e-grid-column field="Value" headerText="Keyword" validationRules="@(new { required=true})" />
</e-grid-columns>
</ejs-grid>
<script>
function onLoad()
{
this.dataSource.dataSource.headers = [{ 'XSRF-TOKEN': $("input:hidden[name='__RequestVerificationToken']").val() }];
}
</script>
Settings.cshtml.cs:
[ValidateAntiForgeryToken]
public class SettingsModel : PageModel
{
public async Task<JsonResult> OnPostInsert([FromBody]SyncfusionControlCrudModel<Keyword> syncfusionControlCrudModel)
{
var identityUser = await GetIdentityUserAsync();
var keyword = new Keyword()
{
UserId = identityUser.Id,
Value = syncfusionControlCrudModel.value.Value
};
ApplicationDbContext.Keywords.Add(keyword);
await ApplicationDbContext.SaveChangesAsync();
return new JsonResult(syncfusionControlCrudModel.value);
}
}
在您的网格中您在工具栏项目中的 “添加” 选项(如“添加”)之前添加了一个空格,这是报告行为的原因。所以它作为一个自定义工具栏项,这就是为什么它不执行任何操作的原因(对于自定义工具栏项,您需要在 toolbarClick 事件中处理相应的操作)。
<ejs-grid id="GridNewKeywords" allowPaging="true" load="onLoad" actionFailure="actionFailure"
toolbar="@( new List<object>() {"Add","Edit","Delete","Update","Cancel"})">
要解决此问题,请删除添加工具栏对象前的空格。
我有网格更新、删除功能,但 "add" 按钮不起作用(即我单击 "add" 按钮但 "insert" 事件未触发)。社区是否会对我可能做错的事情提出意见?
Settings.cshtml:
@Html.AntiForgeryToken()
<ejs-grid id="GridNewKeywords" allowPaging="true" load="onLoad" toolbar="@( new List<object>() {" Add","Edit","Delete","Update","Cancel"})">
<e-grid-editsettings allowAdding="true" allowDeleting="true" allowEditing="true" />
<e-data-manager url="/Settings?handler=DataSource" insertUrl="/Settings?handler=Insert" updateUrl="/Settings?handler=Update" removeUrl="/Settings?handler=Delete" adaptor="UrlAdaptor" />
<e-grid-pageSettings pageCount="5" pageSize="5" />
<e-grid-columns>
<e-grid-column field="KeywordId" headerText="Id" isPrimaryKey="true" width="0" allowEditing="false" />
<e-grid-column field="UserId" headerText="UserId" isPrimaryKey="true" width="0" allowEditing="false" />
<e-grid-column field="Value" headerText="Keyword" validationRules="@(new { required=true})" />
</e-grid-columns>
</ejs-grid>
<script>
function onLoad()
{
this.dataSource.dataSource.headers = [{ 'XSRF-TOKEN': $("input:hidden[name='__RequestVerificationToken']").val() }];
}
</script>
Settings.cshtml.cs:
[ValidateAntiForgeryToken]
public class SettingsModel : PageModel
{
public async Task<JsonResult> OnPostInsert([FromBody]SyncfusionControlCrudModel<Keyword> syncfusionControlCrudModel)
{
var identityUser = await GetIdentityUserAsync();
var keyword = new Keyword()
{
UserId = identityUser.Id,
Value = syncfusionControlCrudModel.value.Value
};
ApplicationDbContext.Keywords.Add(keyword);
await ApplicationDbContext.SaveChangesAsync();
return new JsonResult(syncfusionControlCrudModel.value);
}
}
在您的网格中您在工具栏项目中的 “添加” 选项(如“添加”)之前添加了一个空格,这是报告行为的原因。所以它作为一个自定义工具栏项,这就是为什么它不执行任何操作的原因(对于自定义工具栏项,您需要在 toolbarClick 事件中处理相应的操作)。
<ejs-grid id="GridNewKeywords" allowPaging="true" load="onLoad" actionFailure="actionFailure"
toolbar="@( new List<object>() {"Add","Edit","Delete","Update","Cancel"})">
要解决此问题,请删除添加工具栏对象前的空格。