由于某些 Web 部件,Sharepoint "edit page" 一直在加载

Sharepoint "edit page" keeps loading due to certain webpart

我有一个共享点测试页。我在开发之前插入了我的 webpart,但过了一段时间后我发现当我点击 "edit page" 时,"loading" 标签将永远 运行 并且我无法编辑我的页面。

然后我尝试在我的页面后输入“?Contents=1”url,删除该 Web 部件并重新添加它。当我尝试保存我的更改时,"saving" 标签也永远 运行。

这样的问题只发生在我的webpart上。我尝试使用其他 Web 部件,它们运行良好。有人知道吗?

在您的自定义 webpart 代码中,您可以通过以下代码了解页面是否处于编辑模式。调试代码并尝试理解等待的缓和。 通过这种方式,您可以将您的webpart修改为编辑模式。

 protected override void OnLoad(System.EventArgs e)
 {
 if (this.IsInEditMode)
        {

        }
 }    

private bool IsInEditMode
    {
        get
        {
            SPWebPartManager currentWebPartManager = (SPWebPartManager)WebPartManager.GetCurrentWebPartManager(this.Page);
            return (((currentWebPartManager != null) && !base.IsStandalone) && currentWebPartManager.GetDisplayMode().AllowPageDesign);
        }
    }

好的,我找到原因了。因为我的 webpart 有一个文本框验证器,默认情况下文本框是隐藏的,所以当我单击 "edit page" 时,验证器将被触发并阻止编辑。我将以下代码放入我的 page_load JavaScript 中,问题就解决了。

$(function () {
    var rfv = document.getElementById("<%=rfvName.ClientID%>");
    ValidatorEnable(rfv, false);
});