【问题标题】:App crashes after add a new content to html向 html 添加新内容后应用程序崩溃
【发布时间】:2016-09-21 12:56:14
【问题描述】:

我需要在标签点击事件上重新加载GridView。我写了下一段代码:

<script>
    function OnTabClickEvent(s, e) {
        var tableUrl;

        switch (e.tab.Index) {
            case 0:
                tableUrl = '@Url.Action("CGridViewPartial", "Competences")';
                break;
            default:
                tableUrl = '@Url.Action("TGridViewPartial", "Technologies")';
        }

        $('#TabContent').empty();
        $('#TabContent').load(tableUrl);
    }
</script>

<div>
    @Html.DevExpress().TabControl(settings => 
    {
        settings.Name = "CatalogTabControl";
        settings.Width = Unit.Percentage(100);

        settings.Tabs.Add(tab =>
        {
            tab.Name = "TabCompetences";
            tab.Text = Headers.Competences;
        });
        settings.Tabs.Add(tab =>
        {
            tab.Name = "TabProjects";
            tab.Text = Headers.ProjectsActivities;
        });
        settings.Tabs.Add(tab =>
        {
            tab.Name = "TabTechnologies";
            tab.Text = Headers.Technologies;
        });

        //Events
        settings.ClientSideEvents.TabClick = "OnTabClickEvent";
    }).GetHtml()
</div>
<div id="TabContent">
    @Html.Action("CGridViewPartial", "Competences")
</div>

它只工作一次...在第二次单击时它会因错误而崩溃:

未捕获类型错误:无法读取未定义页面的属性“FindEventSourceParentByTestFunc”:74 未捕获 TypeError: ASPx.TCTClick 不是函数

我做错了什么?我真的不明白为什么它在第二次和下一次标签点击时不起作用。

【问题讨论】:

  • 这是 javascript 错误还是 .NET 错误?看起来像 javascript,但只是想确定一下。如果是,您可能需要发布相关的 javascript 代码。您的浏览器应该能够告诉您发生错误的行
  • 这是默认脚本中包含的 JavaScript 错误。有趣的是,这个错误只有在我向页面添加新内容时才会出现,而不是在删除时出现。
  • “默认脚本”。究竟是哪些脚本?浏览器中没有默认脚本,只有您或 MVC 框架添加的脚本。这将有助于了解错误的位置。
  • 我无法解决这些问题,因此我恢复了此页面上的所有 devexpress 视图。不幸的是,我现在无法发布完整的信息。我会投票结束这个话题
  • 开发快递?看到这个:devexpress.com/Support/Center/Question/Details/T317522 听起来像一个类似的错误。也许您需要正确配置插件。我没用过

标签: jquery asp.net asp.net-mvc-5 devexpress-mvc


【解决方案1】:

试试这个:

<script>
    function OnTabClickEvent(s, e) {
        var tableUrl;

        switch (e.tab.Index) {
            case 0:
                tableUrl = CGridView.PerformCallback(); // where CGridView is the name of the grid view
                break;
            default:
                tableUrl = TGridView.PerformCallback(); // where TGridView is the name of the grid view
        }

    }
</script>

在此处阅读有关回调的更多信息:https://documentation.devexpress.com/#AspNet/CustomDocument9052

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多