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

Код: 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
23.09.2014, 13:49
    #38754628
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать id в другое view Kendo ui grid
kim-kong,

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

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



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

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

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

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

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

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

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

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

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

я напутал

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

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

должно работать короче.
...
Рейтинг: 0 / 0
23.09.2014, 15:41
    #38754845
kim-kong
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать id в другое view Kendo ui grid
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
23.09.2014, 15:44
    #38754853
kim-kong
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать id в другое view Kendo ui grid
hVostt,

и вот так тоже

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


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