Microsoft JScript运行时错误:“null”为null或不是对象

时间:2010-05-26 14:49:57

标签: c# javascript telerik

我有应用程序,我可以在哪里创建动态标签。并删除选项卡上的横杆选项。当我试图删除选项卡时,我收到错误

Microsoft JScript运行时错误:'null'为null或不是对象并指向我的Javascript代码。

这是我的JS代码。

  <script type="text/javascript">
        /* <![CDATA[ */
        function deleteTab(tabText)
        {
            var tabStrip = $find("<%= RadTabStrip1.ClientID %>");
            var multiPage = $find("<%= RadMultiPage1.ClientID %>");
            var tab = tabStrip.findTabByText(tabText);
            var pageView = tab.get_pageView();

            var tabToSelect = tab.get_nextTab();
            if (!tabToSelect)
                tabToSelect = tab.get_previousTab();

            tabStrip.get_tabs().remove(tab);
            multiPage.get_pageViews().remove(pageView);

            if (tabToSelect)
                tabToSelect.set_selected(true);
        }
        /* ]]> */
</script>

并在页面lode

    if (!Page.IsPostBack)
    {
        RadTab tab = new RadTab();
        tab.Text = string.Format("New Page {0}", 1);
        RadTabStrip1.Tabs.Add(tab);

        RadPageView pageView = new RadPageView();
        pageView.Height = new Unit("50px");
        pageView.Width = new Unit("1300px");
        RadMultiPage1.PageViews.Add(pageView);

        BuildPageViewContents(pageView, RadTabStrip1.Tabs.Count);
        RadTabStrip1.SelectedIndex = 0;

    }

3 个答案:

答案 0 :(得分:3)

你没有检查任何这些函数调用,看看他们是否真的返回了一些东西。其中一个是返回null,但是您的代码没有注意到这一点,并尝试在后续语句中使用该结果。

在Firefox中使用Firebug尝试此操作,您可能会收到更好的错误消息。

答案 1 :(得分:3)

如果您尝试使用null的对象,则会发生此错误。在那段代码中,很多东西都可以返回null$find, findTabByText, getPageView, get_nextTab, get_previousTab等。我建议你在使用之前警告()一切。这样你就可以找到null

答案 2 :(得分:0)

如果你试图过早地调用它,那么

$ find可以返回null。请记住,ASP.NET AJAX控件是在Sys.Application.Init事件期间创建的。如果您之前尝试访问它们(例如在window.onload中),则$ find()将无效。