2

我想在Kendo UI網格單元中顯示部分視圖。在Kendo UI網格中的部分視圖

例如,我想它是這樣(我知道它不工作):

@(Html.Kendo().Grid<ViewModel>() 
    .Name("grid") 
    .Columns(columns => 
    { 
     columns.Bound(x => x.Id); 
     columns.Bound(x => x.Name); 
     columns.Bound(x => x.Field1); 
     columns.Template(@<text></text>) 
      .ClientTemplate(
       "<div>'" + Html.Partial("_MyPartialView", x.SubViewModel) + "</div>"); 
    }) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Model(model => model.Id(x => x.Id)) 
     .Read(read => read.Action("Read", "Home")) 
    ) 
) 

我發現,我能做到這一點與jQuery這將使調用的操作方法。但有沒有最簡單的方法來做到這一點?

在此先感謝。

+0

你想在單元格中呈現什麼?我無法想象在單元格中渲染局部視圖是最好的方法。 – CSharper

+0

我想從我的原始視圖模型呈現一些子屬性。它看起來像是可以着色或不着色的日子列表。 –

+0

我一直在嘗試做類似的事情,但都失敗了。就我所知,Kendo網格只喜歡平坦的數據。我能想到的唯一方法是創建一個子網格。我知道這是前一段時間發佈的,希望你找到了解決方案 – jolySoft

回答

1

我使用ClientRowTemplate實現類似於上面的內容。

看看這個文檔:http://demos.telerik.com/aspnet-mvc/grid/rowtemplate

基本上我定義的局部視圖我的行模板,然後我渲染部分是這樣的:

@(Html.Kendo().Grid(Model).Name("usersManageGrid") 
      .Columns(columns => 
      { 
       columns.Bound(c => c.LoginId).Visible(false); 
       columns.Bound(c => c.FullName).Title("Name").Width(120);  
       columns.Bound(c => c.Email).Title("Username"); 
      }).ClientRowTemplate(Html.Partial("_TestPartial").ToHtmlString())) 

,您仍然可以指定並綁定到像其他欄目文檔顯示。如果你願意,你也可以傳遞你的子視圖模型;

.ClientRowTemplate(Html.Partial("_TestPartial",x.SubViewModel).ToHtmlString()) 

其中包含的行模板中的部分觀點如下:

<tr data-uid='#: LoginId #'> 
    <td> 
     <span class='description'><b>Name</b> : #: FullName# </span> 
    </td> 
    <td> 
     @Html.Partial("_Test2Partial") 
    </td> 
</tr> 

然後你會看到我渲染它只是有第二列的另一個局部視圖這在它:

<span style="color:purple;"><b>Email</b> : #: Email# </span> 

最終結果如下所示:

enter image description here

+0

噢,謝謝,我會試試! –