Кнопка Add Syncfusion Grid не срабатывает - PullRequest
0 голосов
/ 13 мая 2019

У меня есть обновление сетки, работает функция удаления, но кнопка «добавить» не работает (т.е. я нажимаю кнопку «добавить», но событие «вставка» не запускается). Будет ли сообщество иметь информацию о том, что я могу делать неправильно?

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);
  }
}

1 Ответ

1 голос
/ 14 мая 2019

В вашей таблице Вы добавили пробел перед параметром «Добавить» (например, «Добавить») в элементах панели инструментов, который является причиной описанного поведения. Таким образом, он действует как пользовательский элемент панели инструментов, поэтому он не выполняет никаких действий (для пользовательского элемента панели инструментов необходимо обработать соответствующее действие в событии toolbarClick).

<ejs-grid id="GridNewKeywords" allowPaging="true" load="onLoad" actionFailure="actionFailure"
      toolbar="@( new List<object>() {"Add","Edit","Delete","Update","Cancel"})">

Чтобы устранить эту проблему, удалите пробелы перед объектом панели инструментов «Добавить в».

Документация

...