1

在我的视图页面中,我有一个按钮。当我单击按钮时,我想让窗口打开。该窗口有一些标签条,在标签条中我想显示一个网格并将参数传递给网格。kendo UI 允许我这样做吗?

Kendo Window --如何从我的主视图将参数传递给_TabStrip?(就像参数是“paraA”字符串)

@(Html.Kendo().Window()
    .Name("window")
    .Title("About Alvar Aalto")
    .Content(@Html.Partial("_TabStrip").ToHtmlString())
    .Draggable()
    .Resizable()
    .Width(600)
    .Actions(actions => actions.Pin().Minimize().Maximize().Close())
    .Events(ev => ev.Close("onClose"))

)

_TabStrip(部分视图)--如何将参数从 _TabStrip 传递到 _Grid?(就像参数是主视图中的“paraA”字符串)

@(Html.Kendo().TabStrip()
.Name("tabstrip")
.SelectedIndex(0)
.Items(items =>
    {
        items.Add()
            .Text("Paris")
            .Content(@Html.Partial("_Weather").ToHtmlString());
        items.Add()
            .Text("New York")
            .Content(@Html.Partial("_Grid").ToHtmlString());
    })    
)

_天气(部分视图)

 <div class="weather">
     <h2>17<span>&ordm;C</span></h2>
     <p>Rainy weather in Paris.</p>
  </div>
 <span class="rainy">&nbsp;</span>

_Grid (部分视图)--如何从 _tabStrip 中获取参数?(如参数是主视图中的“paraA”字符串)

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.CustomerViewModel>()
    .Name("grid")
    .Columns(columns =>
        {
        columns.Bound(c => c.ContactName).Width(140);
        columns.Bound(c => c.ContactTitle).Width(190);
        columns.Bound(c => c.CompanyName);
        columns.Bound(c => c.Country).Width(110);
    })
    .HtmlAttributes(new { style = "height: 380px;" })
    .Scrollable()
    .Groupable()
    .Sortable()
    .Pageable(pageable => pageable
         .Refresh(true)
         .PageSizes(true)
         .ButtonCount(5))
         .DataSource(dataSource => dataSource
            .Ajax()
            .Read(read => read.Action("Customers_Read", "Grid").Data("GetParaFromMainView"))
        )
   )
 //How to get the parameter from main View 
 function GetParaFromMainView(){

 }
4

1 回答 1

1

你可以传递一个参数。但这需要您的观点发生一些变化。以同样的方式从控制器传递模型,它是相同的。我将只写需要更改或添加的行。

主视图

此行打开窗口:

.Content(@Html.Partial("_TabStrip").ToHtmlString())

至:

.Content(@Html.Partial("_TabStrip",paraA).ToHtmlString())

_TabStrip

在您的_TabStrip.cshtml视图中,您需要在顶部添加模型:

@model System.String //or just string

...并更改此行:

.Content(@Html.Partial("_Grid").ToHtmlString());

.Content(@Html.Partial("_Grid",Model).ToHtmlString());

_网格

在您_Grid.cshtml的顶部添加模型

@model System.String // or just string

并更改此行:

.Read(read => read.Action("Customers_Read", "Grid").Data("GetParaFromMainView"))
    )

.Read(read => read.Action("Customers_Read", "Grid").Data(Model))
    )

我希望它能帮助你解决你的问题。使用重载@Html.Partial来传递模型,这是您的 cas 字符串。试一试告诉我。

于 2014-05-11T21:56:05.293 回答