kendo-ui - 每次展开面板栏项目时如何重新加载面板栏项目的内容?

标签 kendo-ui kendo-asp.net-mvc

我正在使用剑道面板栏。 我正在从部分 View 加载面板栏中每个项目的动态内容。

需要的是每次选择项目时我都需要重新加载面板栏项目的内容。

当我第一次选择面板栏中的项目时,它会向服务器发出ajax请求并填充项目中的内容。但是当我第二次选择它时,它不会向服务器发出请求。当我第一次点击项目时,它显示从服务器获取的旧数据。

有什么方法可以在每次展开项目时重新加载面板栏项目的内容吗?我该怎么做?

@(Html.Kendo().PanelBar()
.Name("QuickViewP")
.ExpandMode(PanelBarExpandMode.Single)
.HtmlAttributes(new { style = "width:100%" })
.Items(panelbar =>
{

    panelbar.Add()
            .Text("Account Summary")
            .Expanded(true)
            .ImageUrl(Url.Content("~/Content/Images/account-summary.png"))
            .LoadContentFrom("AccountSummary", "QuickView");

    panelbar.Add()
            .Text("Messages & Notifications")
            .ImageUrl(Url.Content("~/Content/Images/messages.png"))
            .LoadContentFrom("MessagesNotifications", "QuickView");

     panelbar.Add().Text("Investment Elections")
            .ImageUrl(Url.Content("~/Content/Images/investment.png"))
            .LoadContentFrom("InvestmentElections", "QuickView");

}).Events(events => events.Expand("QuickViewPExpand"))

我添加了这样的事件。 每次扩展面板项目时我都能获得新内容 但我有一个问题。当我第一次单击面板项目时,它发送 2 Get ajax 请求 到服务器。之后,每当我单击面板项目时,它都会正常工作。它发送ajax请求并填充新内容。

第一次单击面板项目时,我应该怎么做才能仅发送一个请求?

这是我正在使用的脚本。

<script>
    function QuickViewPExpand(e) {
        debugger;
        var panelBar = $("#QuickViewP").data("kendoPanelBar");


        var item = panelBar.select();

        //if (item.hasClass("k-state-active")) {
        //    panelBar.collapse(item);
        //} else {
        //    panelBar.expand(item);
        //}

        // reload the panel bar
        // This reloads all items in panel bar i just need to only reload the panelItem
        // which is clicked 
        //panelBar.reload("> .k-item");

        // I am uisng this to reload item which is clicked 
        panelBar.reload(item[0]);

    }
</script>

最佳答案

我可能会做这样的事情:

var panelBar = $("#QuickViewP").kendoPanelBar({
    expand: refreshContent()
});

var refreshContent = function(){
    var panelBar = $("#QuickViewP").data("kendoPanelBar");
    // reload the panel bar
    panelBar.reload("> .k-item");
}

语法可能不准确,但应该可以让您接近。

关于kendo-ui - 每次展开面板栏项目时如何重新加载面板栏项目的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20143171/

相关文章:

javascript - 无论如何(内置/自定义写入)在 Kendo UI Grid 中进行内联编辑之前显示确认对话框?

kendo-ui - 单击“编辑”按钮时,Kendo Ui Grid 获取选定的行 ID

kendo-ui - 如何在 Kendo Grid 内联编辑中将数字输入限制在 1 到 12 之间

javascript - 隐藏非事件项目形成剑道多选建议

asp.net-mvc - ASP.Net MVC Kendo Grid 的自定义分页

javascript - 如何在 Kendo UI Grid ClientTemplate 中制作条件按钮?

jquery - 如何根据隐藏列 ID 更改 Kendo UI Grid 中的行颜色?

javascript - 使用 ko.compulated 和 kendoMap 绑定(bind)动态添加标记到 kendoMap

javascript - Kendo-UI Grid 在 Javascript 中获取单元格值

jquery - document.ready 和 asp.net 页面方法