Сообщение об ошибке: «XmlSiteMapProvider не инициализирован. Сначала вызовите метод Initialize ()» - PullRequest
0 голосов
/ 06 сентября 2011

проблема в том, что у меня есть функция переопределения BuildSiteMap () в классе с именем EditableSiteMapProvider, который используется для редактирования файла Sitemap путем удаления или добавления новых узлов.и когда я делаю base.BuildSiteMap ();, это выдает мне ошибку "XmlSiteMapProvider не инициализирован. Сначала вызовите метод Initialize ().

public override SiteMapNode BuildSiteMap()
    {

        SiteMapNode result = base.BuildSiteMap();

        //if (_loadFileNodes())
        //{
        //    lock(objLock)
        //    {
        //        base.Clear();
        //        result = base.BuildSiteMap();
        //        _dataFixInProgress = false;   
        //    }
        //}

        if (!_dataFixInProgress)// && !_dataIsFixed)
        {

Эта функция вызывается из функции Refresh (), которая являетсяследующим образом:

public void Refresh(){
        Clear();
        this._loadFileNodes();
        BuildSiteMap();
    }

Эти две функции находятся в классе EditableSiteMapProvider, и я использую эту функцию, чтобы обновить карту сайта с другой страницы, такой как files.aspx, которая используется для загрузки файлов в базу данных, которая также показывает их имяна панели навигации. Поэтому, чтобы сделать это, я обновляю карту сайта, вызывая функцию обновления на странице Load of files.aspx.cs, которая просматривает все новые загруженные файлы и добавляет или удаляет ссылку на файлы из карты сайта.

protected void Page_Load(object sender, EventArgs e)
{


    DevExpress.Web.ASPxSiteMapControl.ASPxSiteMapControl smc = (DevExpress.Web.ASPxSiteMapControl.ASPxSiteMapControl)this.Master.FindControl("ASPxSiteMapControl1");

    Proj.Web.EditableXmlSiteMapProvider sitemap = new Proj.Web.EditableXmlSiteMapProvider();
    sitemap.Refresh();

}

1 Ответ

0 голосов
/ 06 сентября 2011

Согласно MSDN представляется, что экземпляр SiteMapProvider должен быть инициализирован перед использованием.Вы вызываете Initialize для своего экземпляра перед вызовом BuildSiteMap ()?

...