Kendo ui 如何在每次展开panelbar项时重新加载panelbar项的内容?

Kendo ui 如何在每次展开panelbar项时重新加载panelbar项的内容?,kendo-ui,kendo-asp.net-mvc,Kendo Ui,Kendo Asp.net Mvc,我用的是剑道板。 我正在从局部视图加载面板栏中每个项目的动态内容 需要的是,每次选择项目时,我都需要重新加载面板栏项目的内容 当我第一次在面板栏中选择该项时,它会向服务器发出ajax请求并填充该项中的内容。但当我第二次选择它时,它不会向服务器发出请求。它显示了我第一次单击项目时从服务器获取的旧数据id 是否有任何方法可以在每次项目展开时重新加载面板栏项目的内容?我该怎么做 @(Html.Kendo().PanelBar() .Name("QuickViewP") .ExpandMode(Pane

我用的是剑道板。 我正在从局部视图加载面板栏中每个项目的动态内容

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

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

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

@(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");
}

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

谢谢,伙计。我从这个脚本中得到了一些结果。但是我有一个问题,你能看看我编辑内容并添加脚本的帖子吗?你能告诉我该怎么做吗?