powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передать id в другое view Kendo ui grid
13 сообщений из 13, страница 1 из 1
Передать id в другое view Kendo ui grid
    #38754472
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу по клику на объект грида переходить в нужное мне вью.

Код: html
1.
columns.Bound(product => product.Name).Title("Наименование").ClientTemplate("<a href=/Products/Products target=_blank>${Name}</a>");



при этом, нужно передать Id вот сюда

Код: c#
1.
2.
3.
4.
5.
6.
        public ActionResult Articles_Read(int Id, [DataSourceRequest]DataSourceRequest request)
        {
            return Json(GetArticles()
                .Where(article => article.ProductId == Id)
                .ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754628
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kim-kong,

Код: c#
1.
columns.Bound(product => product.Name).Title("Наименование").ClientTemplate("<a href='/Products/Products/#:Id#' target='_blank'>${Name}</a>");
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754636
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю, мне нужен скрипт, который будет брать нужный мне Id из родительского грида и передавать в нужное мне место.

пробую вот так:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
@(Html.Kendo().Grid<EnzoWayApplication1.Models.ProductViewModel>()
      .Name("grid")
      .Columns(columns =>
      {
          columns.Bound(product => product.Name).Title("Наименование").ClientTemplate("<a href=/Products/Products target=_blank>${Name}</a>");
          columns.Command(commands =>
          {
              commands.Edit();
              commands.Destroy();
          }).Title("Действия").Width(215);
      })
      .ToolBar(toolbar => toolbar.Create())
      .Editable(editable => editable.Mode(GridEditMode.InLine))
      .Pageable(pager => pager.PageSizes(new int[] { 10, 20, 50, 100 }))
      .Scrollable(scrollable => scrollable.Height(400))
      .Groupable()
      .Sortable()
      .ClientDetailTemplateId("template")
      .Selectable(selectable => selectable
            .Mode(GridSelectionMode.Multiple))
      .ColumnMenu()
      .DataSource(dataSource => dataSource
            .Ajax()
            .Model(model =>
                    {
                        model.Id(client => client.Id);
                        model.Field(client => client.Id).Editable(false);
                    })
                    .Create(create => create.Action("Products_Create", "Products"))
                    .Read(read => read.Action("Products_Read", "Products"))
                    .Update(update => update.Action("Products_Update", "Products"))
                    .Destroy(destroy => destroy.Action("Products_Destroy", "Products"))
                  )
      .Filterable()
)

<script>
function getProductId() {
    var row = $(event.srcElement).closest("tr");
    var grid = $(event.srcElement).closest("[data-role=grid]").data("kendoGrid");
    var dataItem = grid.dataItem(row);  
    if (dataItem)
        return { ProductId: dataItem.Id }
    else
        return { ProductId: null }
    }
</script>

<script id="template" type="text/kendo-tmpl">
    @(Html.Kendo().Grid<EnzoWayApplication1.Models.ArticleViewModel>()
            .Name("grid_#=Id#")
            .Columns(columns =>
            {
                columns.Bound(o => o.ArticleName).Title("Артикул");
                columns.Command(commands =>
                {
                    commands.Edit();
                    commands.Destroy();
                }).Title("Действия").Width(215);
            })
            .ToolBar(toolbar => toolbar.Create())
            .Editable(editable => editable.Mode(GridEditMode.InLine))
            .DataSource(dataSource => dataSource
                .Ajax()
                .Model(model =>
                    {
                        model.Id(client => client.Id);
                        model.Field(client => client.Id).Editable(false);
                    })
                .PageSize(10)
                .Create(create => create.Action("Articles_Create", "Products").Data("getProductId"))
                .Read(read => read.Action("Articles_Read", "Products", new { Id = "#=Id#" }))
                .Update(update => update.Action("Articles_Update", "Products"))
                .Destroy(destroy => destroy.Action("Articles_Destroy", "Products"))
            )
            .ClientDetailTemplateId("template1")
            .Pageable()
            .Sortable()
            .ToClientTemplate()
    )
</script>




и вот так

Код: html
1.
.Create(create => create.Action("Articles_Create", "Products", new { Id = "getProductId" }))



но в Id все равно не передается
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754662
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Так уже пробовал, пустой грид выдает. Я отказался от этой идеи, и решил использовать иерархию.
Сейчас проблема состоит в том, что мне нужно передать Id в ActionResult Articles_Create
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754748
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kim-kong
Код: html
1.
.Read(read => read.Action("Articles_Read", "Products", new { Id = #=Id#" }))
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754756
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kim-kong
Код: html
1.
.Read(read => read.Action("Articles_Read", "Products", new { Id = "\#=Id\#" }))



маскировать надо решётки обратными слешами
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754787
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Уверен ? Зачем их маскировать ?

у меня выдает:
CS1009: Нераспознанная управляющая последовательность
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754798
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kim-konghVostt,

Уверен ? Зачем их маскировать ?

у меня выдает:
CS1009: Нераспознанная управляющая последовательность

ну я забыл сказать, что маскировать надо не одним слешем, а двумя :)
мог бы и сам догадаться...

.Read(read => read.Action("Articles_Read", "Products", new { Id = " \\ #=Id \\ #" }))
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754801
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kim-kong,

маскировать надо, так как это вложенный шаблон. если не замаскировать, то внешний грид зохавает внутренний темлейт.
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754820
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

да, уже попробовал, пустой грид выдает
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754831
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kim-kong,

я напутал

.Read(read => read.Action("Articles_Read", "Products", new { Id = "#=Id#" }))

здесь не надо маскировать.

должно работать короче.
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754845
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Не будет работать, т.к. мне нужно передать Id из родительского грида в template, если я просто укажу "#=Id#", то он передаст Id из Article, а не из нужного мне Product.

Я написал функцию, которая выдает Id из родительского грида, но вот так он не хочет передаваться

Код: html
1.
.Create(create => create.Action("Articles_Create", "Products").Data("getProductId"))



скрипт
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script>
function getProductId() {
    var row = $(event.srcElement).closest("tr");
    var grid = $(event.srcElement).closest("[data-role=grid]").data("kendoGrid");
    var dataItem = grid.dataItem(row);  
    if (dataItem)
        return { ProductId: dataItem.Id }
    else
        return { ProductId: null }
    }
</script>
...
Рейтинг: 0 / 0
Передать id в другое view Kendo ui grid
    #38754853
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

и вот так тоже

Код: html
1.
.Create(create => create.Action("Articles_Create", "Products", new { Id = "getProductId" }))
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передать id в другое view Kendo ui grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]