【问题标题】:Reload Tab content using ajax without loading page on Refresh使用 ajax 重新加载选项卡内容而不在刷新时加载页面
【发布时间】:2018-05-28 15:00:52
【问题描述】:

重新加载选项卡而不是整个页面

<div class="content">
    <div id="tabstrip">
        <ul>
            <li id="tabEdit">@ResourceStrings.Text_ProblemDetails</li>
            <li id="tabItemsAffected">@ResourceStrings.Text_ItemsAffected</li>
            <li id="tabAttachments">@ResourceStrings.Text_Attachments</li>

            @if (ApplicationGlobals.SELECTED_COMPANY_CODE != CompanyCode.MONTREAL)
            {
                <li id="tabPlmReferences">@ResourceStrings.Text_PlmReferences</li>
            }

            <li id="tabDispositions">@dispositionsText</li>

            @if (ApplicationGlobals.SELECTED_COMPANY_CODE == CompanyCode.MONTREAL && (ApplicationGlobals.SELECTED_NCRBASE.NcrType != (int)NcrTypeEnum.NCRATTEST))
            {
                <li id="tabReworkDetails">@ResourceStrings.Text_ReworkDetails</li>
            }

            <li id="tabLineClosure">@ResourceStrings.Text_Line_Approval</li>
            <li id="tabTraceability" style="float:right">@ResourceStrings.Text_Traceability</li>
        </ul>
	</div>
</div>

是否可以更新网页的部分(如选项卡),而无需在切换到另一个选项卡时重新加载整个页面

  $.ajax({
                url: "NcrLine/Reload",
                type: "GET",
                async: false,
                dataType: "json",
                success: function () {
                    alert("Hello");
                    
                    var tab = $('#tabstrip').tabs('getSelected');
                    tab.panel('refresh');
                }
            });

【问题讨论】:

  • 你能提供你的html结构吗?你用的是什么插件?
  • 你可以使用jquery的load()将某些页面的内容加载到特定的holder
  • 使用 Ajax 自动切换到另一个标签页而不刷新页面

标签: javascript ajax


【解决方案1】:

我需要了解的第一件事是这些更新是什么类型的,如果这些更新具有简单的代码呈现,您可以在收到响应后简单地将 HTML 代码绑定到选项卡句柄。如下图-

$.ajax({
    url: "NcrLine/Reload",
    type: "GET",
    async: false,
    dataType: "json",
    success: function () {
        alert("Hello");

        var tab = $('#tabstrip').tabs('getSelected');
        tab.panel('refresh');

        // Add css to the selected tab
        $('#tabstrip[selected=selected]').css('css-property', 'css-value');

        //Render complete new HTML code of updated tabstrip
        $('#tabstrip').html('<Your tabstrip HTML template>');
    }
});

如果您有复杂的 HTML 渲染,那么我建议您使用 handlebars.js 创建部分,这将帮助您创建具有动态值的可重用部分,并且可以绑定到您的内容页面。

【讨论】:

  • 如果我在一个选项卡中进行更改,例如:保存并切换到另一个选项卡,我的页面正在加载它的性能问题,因此如果我进行任何更改并且我切换到另一个选项卡意味着我只需要加载选项卡我的整个页面不应该加载只有标签必须加载
  • 如果您使用的是 ajax,那么重新加载页面是没有意义的。另一种方法是使用 load 方法,我无法详细说明,但您会发现这很有帮助。创建一个包含标签代码的单独文件。您可以每次在您的任何 HTML 内容标签上调用该文件 - $('#tabstrip').load('complete/file/path'); 您可以使用以下链接引用相同的内容 - google.co.in/…
  • 我需要使用asp.net
猜你喜欢
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
相关资源
最近更新 更多