首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kendo Grid单元中显示Kendo Grid?

如何在Kendo Grid单元中显示Kendo Grid?
EN

Stack Overflow用户
提问于 2014-08-22 04:01:45
回答 1查看 3.7K关注 0票数 2

我在MVC应用程序中使用Kendo来显示数据。它工作得很好。但是我想在网格单元中显示另一个网格。我已经做了我的研究,尝试了不同的事情,但我没有找到任何解决办法。请建议一下。这是我的密码。

代码语言:javascript
复制
@(Html.Kendo().Grid<TimeSheetManagement.Models.ClientView>()
.Name( "Clients" )
.Columns( columns =>
{
    columns.Bound( e => e.Name );
    columns.Bound( e => e.Address );
    columns.Bound( e => e.City );
    columns.Bound( e => e.State );
    columns.Bound( e => e.ZipCode );
    columns.Template( e => e.Contacts ).ClientTemplate( "#= buildContactsGrid(data) #" );
    columns.Bound( e => e.CreatedDate );
    columns.Bound( e => e.CreatedBy );
    columns.Bound( e => e.UpdatedDate );
    columns.Bound( e => e.UpdatedBy );
    columns.Bound( "" ).ClientTemplate( @Html.ActionLink( "Edit" , "Create" , new { clientId = "#=Id#" } , new { title = "Edit Client" } ).ToHtmlString() );
} )
.Pageable().Sortable().Filterable()
.AutoBind( true )
.DataSource( source => source.Ajax()
                    .PageSize( 20 )
                    .Read( read => read.Action( "GetClients" , "Client" ) )
    )
)

这是我的JavaScript函数。

代码语言:javascript
复制
<script>

    function buildContactsGrid(client)
    {
        var htmlContacts = '';
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: '@Url.Action( "GetJsonContactsByClientId" )',
            data: JSON.stringify({
                'sClientId': client.Id
            }),
            dataType: "json",
            async: false,
            success: function (response) {
                htmlContacts += "<table style='border:1px solid black;'><tr><th>First Name</th><th>Last Name</th><th>Role</th></tr><tr>";
                $(response).each(function (index, item) {
                    htmlContacts +="<td>"+ item.FirstName +"</td><td>"+ item.LastName+"</td><td>"+item.Role +"</td></tr>";
                });
                htmlContacts += "</table>";
            }
        });
        return htmlContacts;
    }
</script>

我能够用JavaScript函数构建一个表,并在网格单元中显示,但我想显示Kendo。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-29 18:56:10

在对谷歌做了几天的研究之后,我发现这篇文章是链接的,他们解释了为什么客户端模板在加载时没有绑定。

下面是网格单元格中的网格:

代码语言:javascript
复制
columns.Template( e => "" ).Title("Contacts").ClientTemplate( 
        Html.Kendo().Grid<TimeSheetManagement.Models.ContactView>()
           .Name( "Clients_#=Id#" )
           .Columns( c =>
           {
               c.Bound( e1 => e1.FullName );
               c.Bound( e1 => e1.Role );
               c.Bound( e1 => e1.Email );
               c.Bound( e1 => e1.PhoneNumber );

            } )
            .AutoBind( true )
            .DataSource( source1 => source1.Ajax()
            .PageSize( 5 )
            .Read( read1 => read1.Action( "GetContactsByClientId" , "Client" , new { sClientId = "#=Id#" } ) )
            )
            .ToClientTemplate()
            .ToHtmlString()
        );

我在电网上有个活动。

代码语言:javascript
复制
  .Events( e => e.DataBound( "onGridDataBound" ) )

最后,我在脚本中添加了这个代码。

代码语言:javascript
复制
 function onGridDataBound(e)
    {
        $('#Clients script').appendTo(document.body);
    }

这是我所期望的输出。如果你有任何问题,请告诉我。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25439340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档