首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态加载DevExpress PageControl表

动态加载DevExpress PageControl表
EN

Stack Overflow用户
提问于 2017-05-31 19:47:20
回答 2查看 999关注 0票数 0

下面是我的视图代码的一个简化示例。我希望有DevExpress选项卡,以便每个选项卡共享单个div的内容。这里的想法是,我有大量的HTML将显示在这些标签,我不想让浏览器与所有它一次。我希望这样做,所以当您选择一个选项卡时,共享div中的HTML将被删除,然后通过AJAX加载一个新的部分视图,以重新填充div并在屏幕上显示。这样,只有一个选项卡会加载页面加载,当切换到选项卡之间时,将删除前一个选项卡的HTML以提高浏览器性能。有人知道我该怎么做吗?谢谢!

代码语言:javascript
复制
<%
Html.DevExpress().PageControl(settings =>
{
    settings.Name = "pcGeneralTabs";
    settings.Styles.Tab.Paddings.Padding = Unit.Pixel(5);
    settings.Styles.ActiveTab.BackColor = Color.White;
    settings.Styles.Tab.Height = Unit.Pixel(35);
    settings.Width = Unit.Percentage(100);
    settings.Height = Unit.Percentage(100);

    settings.ClientSideEvents.ActiveTabChanged = @"
        function(s, e) {
            var tab = s.GetActiveTab().name;

            //Implement loading of Tab content through AJAX
        }";

    settings.TabPages.Add(tab =>
    {
        tab.Name = "tbFirst";
        tab.Text = "Summary Information";
    });

    settings.TabPages.Add(tab =>
    {
        tab.Name = "tbSecond";
        tab.Text = "Financial Analysis";

    });
}).Render();
%>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-01 10:25:52

您可以通过更改以下设置和方法来做到这一点:

更改其他选项卡的名称和文本属性。

代码语言:javascript
复制
settings.TabPages.Add(tabpage =>
{
    tabpage.Name = "TabPage1";
    tabpage.Text = "Page 1";
    tabpage.SetContent(() =>
    {
        ViewContext.Writer.Write(String.Format("<div id='{0}' >", tabpage.Name));
        Html.RenderAction(tabpage.Name);
        ViewContext.Writer.Write("</div>");
    });
});

和ClientSideEvent:

代码语言:javascript
复制
 function OnActiveTabChanging(s, e) {
    var action = e.tab.name;
    var actionUrl = window.location + "/Home/" + action;
    $.ajax({
        type: "POST",
        url: actionUrl,
        success: function (response) {
            $("#" + action).html(response);
        }
    });
}

在控制器中添加方法:

代码语言:javascript
复制
public ActionResult TabPage1()
{               
   return PartialView("PartialView1");
}
票数 1
EN

Stack Overflow用户

发布于 2017-06-01 14:39:08

没有内置的功能来删除已经加载的HTML内容.但是,可以启用延迟/延迟的选项卡加载(即创建动态HTML内容以加快初始呈现),同时通过PageControlSettings.CallbackRouteValues设置第一次激活它们。查看Tab Strip - AJAX演示,了解如何完成此任务。

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

https://stackoverflow.com/questions/44293507

复制
相关文章

相似问题

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