Есть ли другой способ получить количество записей в списке <classmodel>в .cshtml? - PullRequest
0 голосов
/ 04 октября 2019

Я новичок в MVC, сетке кендо и Jquery. Мне кажется это сложным, так как я пытаюсь получить счетчик привязки модели к сетке, чтобы выполнить проверку состояния, т.е. показать или скрыть элементы div и кнопку.

Имея привязку данных, элементы div внутри fieldset.

Когда я пытаюсь получить счет из источника данных сетки, я может получить его, но яхотите получить счет как @ model.count? но я не мог. К вашему сведению, я не смог получить значение модели при отладке в консоли. Способ связывания, т. Е. С частичного просмотра @model List вверху. Есть ли другой способ получить количество записей в списке?

Код

<fieldset>
   <div class="title" id="msgduplicate">This may be a duplicate Contact. Does this Contact match any of 
        the existing Contacts, below?</div>
   <div class="title" id="msgnoduplicate">No duplicate record found, click Continue to Save the 
        Contact.</div>

     @(Html.SecureGrid<ContactViewModel>()
                                  .Name("DuplicateContactGrid")
                                  .Columns(columns =>
                                  {
                                      columns.Bound(e => e.ContactUid).Hidden(true);
                                      columns.Bound(e => e.ContactRelUid).Hidden(true);
                                      columns.Bound(e => e.ContactEntity).Hidden(true);
                                      columns.Bound(e => e.ResourceUid).Hidden(true);
                                      columns.Bound(e => e.ManagingOrgUid).Hidden(true);
                                      columns.Bound(e => e.FirstName).Width(100)
                                        .HtmlAttributes(new { title = "FirstName" });
                                      columns.Bound(e => e.LastName).Width(100)
                                        .HtmlAttributes(new { title = "LastName" });
                                      columns.Bound(e => e.PhoneNumber).Width(100)
                                        .HtmlAttributes(new { title = "PhoneNumber" });
                                      columns.Bound(e => e.FaxNumber).Width(100)
                                        .HtmlAttributes(new { title = "FaxNumber" });
                                      columns.Bound(e => e.RoleNames).Width(100)
                                        .HtmlAttributes(new { title = "RoleNames " });
                                      columns.Bound(e => e.Notes).Width(150)
                                        .HtmlAttributes(new { title = "Notes" });
                                  })
                                  .Resizable(resize => resize.Columns(true))
                                  .Pageable()
                                  .Navigatable()
                                  .Scrollable(scroll => scroll.Endless(true))
                                  .BindTo(Model)
                                   .Events(e => 
                                      e.Change("selectDuplicateContact").DataBound("setPasGridItems"))
                                  .Selectable(s => s.Mode(GridSelectionMode.Single))
                                  .DataSource(dataSource => dataSource.Server().Model(model => 
                                   model.Id(gd => gd.ContactUid))))
</fieldset>

function () {
            debugger;
            var grid = $("#DuplicateContactGrid").data("kendoGrid");
            var count = grid.dataSource.total();
            if (count > 0) {
                debugger;
                $("#submit").hide();
                $("#msgnoduplicate").hide();
                $("#msgduplicate").show();
            } else {
                $("#submit").show();
                $("#msgnoduplicate").show();
                $("#msgduplicate").hide();

            }
        });

    </script>

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Чтобы просто иметь доступ к количеству элементов в вашей модели (которая является коллекцией) в javascript, вы можете использовать:

var count = @Html.Raw(Model.Count());

Обратите внимание, что это определяется во время визуализации представления, так что это не будет обрабатывать изменение количества строк должным образом. Если это требование, вы должны продолжать получать счетчик непосредственно из сетки и вызывать свою функцию по мере необходимости.

0 голосов
/ 04 октября 2019

Что я понимаю из вашего вопроса, так это то, что вам нужен доступ к модели MVC в коде JavaScript. Ниже ссылка. В вашем разделе сценария используйте нижеприведенный код. После этого вы можете получить доступ к свойству модели из консоли и получить количество @section script { var model = @Html.Raw(Json.Encode(Model)); //For javascript object }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...