Telerik Grid MVC Razor: автоматический выбор строки и запуск события выбора - PullRequest
0 голосов
/ 02 апреля 2012

Использование Telerik Grid с движком Razor ASP.NET MVC 3.

Когда пользователь выбирает строку, мы скрываем некоторую часть страницы.Это работает нормально, когда я нажимаю на строку.

Однако мне нужно автоматически выбирать первую строку, когда страница загружена

Я могу изменить цвет отображения строки, чтобы она отображалась выбранной,но я не могу понять, как вызвать событие select!

Вот код сетки:

    @(Html.Telerik().Grid<SomethingViewModel>()
            .Name("SomethingGroupGrid")
            .ClientEvents(events =>
                {
                    events.OnDataBinding("SomethingGroupGrid_onDataBinding");
                })
                    .DataBinding(dataBingding => dataBingding.Ajax().Select("SomethingGroupGrid", "Something"))
            .Columns(columns =>
                {
                    columns.Bound(c => c.Id).Hidden();
                    columns.Bound(c => c.Name)
                    .Title("Groups");
                })
            .Selectable()
            .Pageable(x => x.PageSize(10))
            .ClientEvents(events => events.OnRowSelect("SomethingGroupGrid_RowSelect"))


         )

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 02 апреля 2012

Хорошо, я нашел странно-уродливое решение:

Я добавил событие OnRowDataBound в сетке. Эти функции OnRowDatabound запускают события OnRowSelect. Затем я добавил глобальную переменную javascript страницы для хранения значения bool, которое проверяет, была ли выбрана первая строка, поэтому OnRowDatabound не вызывает OnRowSelect для каждой строки.

@(Html.Telerik().Grid<SomethingViewModel>()
        .Name("SomethingGroupGrid")
        .ClientEvents(events =>
            {
                events.OnDataBinding("SomethingGroupGrid_onDataBinding");
            })
                .DataBinding(dataBingding => dataBingding.Ajax().Select("SomethingGroupGrid", "Something"))
        .Columns(columns =>
            {
                columns.Bound(c => c.Id).Hidden();
                columns.Bound(c => c.Name)
                .Title("Groups");
            })
        .Selectable()
        .Pageable(x => x.PageSize(10))
        .ClientEvents(events => events.OnRowSelect("SomethingGroupGrid_RowSelect"))
        .ClientEvents(events => events.OnRowDataBound("SomethingGroupGrid_OnRowDataBound"))


     )
<script type="text/javascript">
      var firstRowSelected = false;

      function PreviewAccountGrid_DataBound(e) {

      if (firstRowSelected == false) {
          SomethingGroupGrid_RowSelect(e);
          firstRowSelected = true;
       }
       }

</script>

Пожалуйста, скажите мне, что есть лучший способ сделать это, или это сильно ухудшит мое мнение о контроле Telerik (который уже чертовски низок).

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