Member 10398773 Ответов: 0

Как я могу позволить моей сетки из Telerik MVC на расширение только расширил подряд


У меня есть две сетки, одна для клиента, а другая-в шаблоне клиента, который показывает встроенный профиль клиента.При расширении строки родительской сетки я могу получить уникальный идентификатор и загрузить профиль на основе идентификатора клиента, и это хорошо отображает профиль в сетке шаблона клиента под этой выбранной строкой.

Однако, если я выберу другой второй элемент в Родительском окне, детали этого конкретного идентификатора не будут показаны в представлении шаблона клиента второй строки, но они будут показаны в первой сетке первой строки с правильными деталями второго уникального идентификатора.По моему мнению, сетка сделала переключение, но вместо того,чтобы отображать эти результаты на сетке второй строки, она отображалась на секции первой строки.Как я могу быть в состоянии гарантировать,что для каждой выбранной строки он отображает свои соответствующие результаты под той же строкой, но не отображает результаты в первой строке.

Если я пойду дальше и выберу другой пункт,скажем пункт 4, встроенные детали будут принимать изменения в первой сетке, но эта конкретная сетка строк не будет отображать результаты.Ниже приведена структура моей сетки.

Я следую этому примеру, чтобы отобразить свои записи http://demos.telerik.com/aspnet-mvc/html5-dashboard-sample-app/Home/ProductsAndOrders

Ниже приведены мои сетки.
<script>
  function onDetailsDatabound() {
        var firstRow = this.tbody.find("tr.k-master-row").first();
        var model = this.dataItem(firstRow);
        if (!model.isNew()) {
            this.expandRow(firstRow);
        }
    }
    function onCustomerInfoDisplay(e) {
        if (!e.model.isNew()) {

            e.container.find("[name=CustomerId]").data("kendoDropDownList").enable(false);
        } else {
            e.container.find("td.k-hierarchy-cell").css({ visibility: "hidden" });
        }
    }
    function onDataBound(e) {
        var firstRow = this.tbody.find("tr.k-master-row").first();
        var model = this.dataItem(firstRow);
        if (!model.isNew()) {

            this.expandRow(firstRow);
        }

    }

    function OnDetailExpand(e) {

        $(e.detailRow).find('.t-grid').data().tGrid.ajaxRequest();
    }
</script>


<div>
    @(Html.Kendo().Grid(Model.CustomerDetails).Name("Customers")
            .DataSource(x => x.Ajax().PageSize(100).Read("LoadCustomers", "Customer").Model(d =>
        {
            d.Id(e => e.CustomerId);
            d.Field(a => a.CustomerId).Editable(false);

        }).ServerOperation(false))

        .Selectable()
        .Pageable(s => s.Refresh(true))
        .Navigatable()



        .Columns(d =>
        {

            d.Bound(c => c.CustomerId).Title("CustomerData");

            d.Bound(s => s.FirstName).Title("FirstName");
            d.Bound(s => s.LastName).Title("LastName").Visible(true);
            d.Bound(s => s.Email).Title("Email Address").Visible(false);


        })
        .BindTo(Model.Customers)
                .Pageable(c => c.Enabled(true).PageSizes(true)).ClientDetailTemplateId("clientTemplate").Events(a => a.DataBound("onDataBound").DetailExpand("OnDetailExpand"))







    )




</div>

<script id="clientTemplate" type="text/x-kendo-template">


  @(Html.Kendo().Grid(Model.CustomerBio).Name("records").Columns(a =>
            {
                a.Bound(s => s.KinName);
                 a.Bound(s => s.KinIdNumber);
                  a.Bound(s => s.KinPostalCode);
                   a.Bound(s => s.KinCity);
            }).DataSource(a => a.Ajax().Model(b => b.Id(x => x.ProfileId)).Read("GetCustomerBioByCustomerId", "Customer",new {CustomerId="#=CustomerId#"})).Events(a => a.DataBound("onDetailsDatabound").Edit("onCustomerInfoDisplay")).ToClientTemplate())


</script>


Что я уже пробовал:

Пробовал работать с функцией javascript для расширения выбранной строки, но все еще испытывал трудности с отображением дочерней сетки в выбранной строке.Ниже приведена функция, которую я использую при детальном расширении
функция OnDetailExpand(e) {

$(Эл.detailRow).найти('.t-решетки').данных().tGrid.ajaxRequest();
}

Vincent Maverick Durano

Привет,
Возможно, здесь есть кто-то, кто знает об элементах управления Telerik, но я полагал, что у вас будет больше шансов, разместив их на специализированных форумах Telerik:http: / / www. telerik. com / community/forums. aspx

0 Ответов