1

我正在尝试设计一个查看新闻项目列表的 Web 部件,并最初按日期顺序打印所有行。如果用户选择一种新闻项目,那么只会显示那些新闻项目(同样,按日期排序)。问题是当我尝试调试它时,我的 webpart 不断抛出这个错误:

Microsoft JScript 运行时错误:未知的运行时错误

而这个烂摊子在它背后突然出现:

    RTE.RteUtility.$1n = function($p0, $p1) {
if (RTE.RteUtility.isInternetExplorer() && $p0.tagName === 'TABLE') {
    var $v_0 = document.createElement('DIV');
    $v_0.innerHTML = '<table>' + $p1 + '</table>';
    while ($p0.childNodes.length > 0) {
        $p0.removeChild($p0.childNodes[0]);
    }
    RTE.RteUtility.$1E($v_0.firstChild, $p0);
}
else {
    $p0.innerHTML = '<div>RTE</div>' + $p1;
    $p0.removeChild($p0.firstChild);
}
}

这行:“$p0.innerHTML = 'RTE' + $p1”似乎是导致问题的原因。好吧,否则,这是一个非常具体的错误消息,谢谢微软。:/

该错误似乎发生在 NewsFeed.cs 调用 CreateChildControls 之后。我现在最好的理论可能是 NewsFeedUserControl.ascx.cs 中的某些东西导致了错误,但由于我是 SharePoint 的新手,我不知道这可能是什么。是因为 Page_Load 中的这段代码吗?

protected void Page_Load(object sender, EventArgs e) { list = web.Lists["NewsFeedLI"];

         query.Query = "<Where><IsNotNull><FieldRef Name='Headline' /></IsNotNull></Where></Query>" +
               "<OrderBy<FieldRef Name='Article_x0020_Date' Ascending='True' /></OrderBy>";

         SPListItemCollection result = list.GetItems(query);


        foreach (SPListItem item in result)
        {
            newsList.Text = newsList.Text + item["Headline"].ToString() + Environment.NewLine;
            newsList.Text = newsList.Text + item["Summary"].ToString() + Environment.NewLine + Environment.NewLine;
        }
    }

看,我不知道。

4

1 回答 1

0

尝试预定义您在循环中返回的文本。如果 Web 部件的基本文本(例如“Hello World”)看起来不错,但没有更高级的值,那么它就是您的问题所在。

您需要确保将适当的编码应用于要呈现到屏幕的任何输出,因为这可能会导致您出现问题。

于 2013-02-12T21:42:19.730 回答