Browse Source

Load tabs only once.

pull/13119/head
maliming 4 years ago
parent
commit
4094f33e2f
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 7
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml
  2. 17
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js

7
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml

@ -28,14 +28,15 @@
{ {
var group = Model.SettingPageCreationContext.Groups[i]; var group = Model.SettingPageCreationContext.Groups[i];
var active = i == 0 ? "active" : string.Empty; var active = i == 0 ? "active" : string.Empty;
<li class="nav-item" id="@group.Id"> <li class="nav-item">
<a class="nav-link @active" data-bs-toggle="pill" role="tab">@group.DisplayName</a> <a class="nav-link @active" id="@group.Id" data-bs-toggle="pill" role="tab">@group.DisplayName</a>
</li> </li>
} }
</ul> </ul>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<div class="tab-content" id="tab-content"></div> <div class="tab-content" id="tab-content">
</div>
</div> </div>
</div> </div>
</abp-card-body> </abp-card-body>

17
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js

@ -1,19 +1,26 @@
(function ($) { (function ($) {
var l = abp.localization.getResource('AbpSettingManagement'); var l = abp.localization.getResource('AbpSettingManagement');
$('#tabs-nav .nav-item').click(function () { $('#tabs-nav .nav-item .nav-link').click(function () {
var id = $(this).attr("id") var _this = $(this);
if(_this.attr('data-bs-target') !== undefined) {
return;
}
var id = _this.attr("id")
abp.ui.block({ abp.ui.block({
elm: '#tab-content', elm: '#tab-content',
busy: true, busy: true,
promise: abp.ajax({ promise: abp.ajax({
type: "POST", type: 'POST',
url: "SettingManagement?handler=RenderView&id=" + id, url: 'SettingManagement?handler=RenderView&id=' + id,
dataType: "html", dataType: "html",
contentType: false, contentType: false,
processData: false processData: false
}).done(function (response) { }).done(function (response) {
$('#tab-content').html(response); $('#tab-content').children('.tab-pane').removeClass('show').removeClass('active');
_this.attr('data-bs-target', '#' + $.escapeSelector($.escapeSelector(id)));
$('#tab-content').append('<div id=' + $.escapeSelector(id) + ' class="tab-pane fade active show">' + response + '</div>');
abp.event.trigger('Abp.SettingManagement.View.Render.' + id); abp.event.trigger('Abp.SettingManagement.View.Render.' + id);
}) })
}); });

Loading…
Cancel
Save