Kendo网格层次结构从主网格传递ID

时间:2014-12-11 07:37:59

标签: c# kendo-ui grid kendo-grid kendo-asp.net-mvc

我有一个Kendo Hierarchial Grid,其中主网格包含Client详细信息,子网格包含Point of Contacts。我能够将Client ID从主网格传递到子网格Read操作,并且数据正常加载。但是,问题在将Client ID传递到子网格中的Add New Point of Contact按钮时出现。如果我对值进行硬编码,则Controller方法运行正常。但是,它无法选择引用Client ID

子网格如下:

<script id="template" type="text/kendo-tmpl">
@(Html.Kendo().Grid<Track24.Billing.Web.Models.ListPointOfContactViewModel>()
.Name("grid_#=ClientID#")
.Columns(columns =>
{
columns.Bound(p => p.POC_ClientID);
columns.Bound(p => p.ContactName);
columns.Bound(p => p.RegionName).Filterable(filterable => filterable.UI("regionFilter"));
columns.Bound(p => p.CountryName).Filterable(filterable => filterable.UI("countryFilter"));
columns.Bound(p => p.ContactEmail);
columns.Bound(p => p.ContactNumber);
})
.ToolBar(toolbar => toolbar.Template(@<text>
<a class="k-button k-button-icontext k-grid-add subgridadd" href="@Url.Action("CreatePOC", "PointOfContact", new { id = "\\#= ClientID\\#" })"><span class="k-icon k-add"></span>Add new Point-of-Contact</a></text>))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Read
(
read => read.Action("ClientBinding_PointOfContacts", "PointOfContact", new { clientID = "#=ClientID#" })
)
)
.Pageable()
.Sortable()
.ToClientTemplate()
)
</script>

子网格与主网格正确绑定;因此,在子网格中正确读取ClientID。但是,我无法在Add New按钮中阅读相同内容。

编辑1:这是我的主(父)网格:

<div class="row">
    <div class="box">
        <div class="box-body table-responsive">
            @(Html.Kendo().Grid<Track24.Billing.Web.Models.ListClientViewModel>()
        .Name("grid")
        .Columns(columns =>
        {
            columns.Bound(e => e.ClientName);
            columns.Template(@<text></text>).ClientTemplate("<a class='btn btn-primary grid-edit' href='" + @Url.Action("EditClient", "PointOfContact", new { id = "#:ClientID#" }) + "'><span class='glyphicon glyphicon-edit'></span>Edit</a> <a class='btn btn-primary' data-href='" + @Url.Action("DeleteClient", "PointOfContact", new { id = "#:ClientID#" }) + "' data-toggle='modal' data-target='\\#confirm-delete' href='\\#' ><span class='glyphicon glyphicon-trash'></span>Delete</a>");

        })
        .Sortable()
        .Pageable()
        .Scrollable()
        .ClientDetailTemplateId("template")
        .HtmlAttributes(new { style = "height:430px;" })
        .DataSource(dataSource => dataSource
            .Ajax()
            .Model(model => model.Id(e => e.ClientID))
            .PageSize(6)
            .Read(read => read.Action("Client_Read", "PointOfContact"))
        )
        .Events(events => events.DataBound("dataBound"))
        .ToolBar(toolbar => toolbar.Template(@<text><a id="btnCreate" class="k-button k-button-icontext k-grid-add" href="@Url.Action("CreateClient", "PointOfContact")"><span class="k-icon k-add"></span>Add new Client</a></text>))


)
        </div>

    </div>
</div>

编辑2:我尝试通过创建网址传递链接,但它给了我一个错误Cannot perform runtime binding on a null reference

.ToolBar(toolBar =>
                        {
                            toolBar.Create();
                            toolBar.Save();
                        })
                                .DataSource(dataSource => dataSource
                                .Ajax()
                                        .Model(model =>
                                            {

                                                model.Id(p => p.POC_ClientID);
                                            })
                                .PageSize(10)
                                .Read
                                (
                                read => read.Action("ClientBinding_PointOfContacts", "PointOfContact", new { clientID = "#=ClientID#" })
                                )
                                .Create(create => create.Action("CreatePOC", "PointOfContact", new { pclientID = Model.Id }))
                                )
                                .Pageable()
                                .Sortable()
                                .ToClientTemplate()

0 个答案:

没有答案
相关问题