Как я могу позволить моей сетки из 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