none
Problemas com Ajax no Sharepoint 2007 RRS feed

  • Pergunta

  • Boa Tarde, estou com problemas na execução correta do AJAX no Sharepoint 2007.

    Tenho um UpdatePanel que ao trocar o valor de uma DropDownList ele ativa o ajax, a primeira vez funciona, mas a partir da primeira vez, fica aparecendo o "Carregando..." e não acontece mais nada.

    Alguém pode me ajudar? Segue o código abaixo:

     

    public WPMaisFotos()
        {
          this.ExportMode = WebPartExportMode.All;
        }
    
        protected override void CreateChildControls()
        {
          try
          {
            base.CreateChildControls();
            //this.EnsureChildControls();
            this.EnsureUpdatePanelFixups();
            
            filtros = new DropDownList();
            filtros.ID = "filtroMaisFotos";
            filtros.Items.Add("Mais recentes");
            filtros.Items.Add("Mais comentadas ");
            filtros.Items.Add("Mais acessadas");
            filtros.Items.Add("Melhor avaliadas");
            filtros.Items.Add("A-Z por nome");
            filtros.Items.Add("Z-A por nome");
            //filtros.CssClass = "custom";
            filtros.AutoPostBack = true;
            filtros.EnableViewState = false;
            filtros.SelectedIndexChanged += new EventHandler(filtros_SelectedIndexChanged);
    
            uppMaisFotos = new UpdatePanel();
            uppMaisFotos.ID = "uppMaisFotos";
            uppMaisFotos.UpdateMode = UpdatePanelUpdateMode.Conditional;
            uppMaisFotos.ChildrenAsTriggers = true;
            
            this.Controls.Add(uppMaisFotos);
    
            lkbNext = new LinkButton();
            lkbPagina = new LinkButton();
            lkbPrev = new LinkButton();
    
            CriarHtmlMaisFotos();
          }
          catch (Exception ex)
          {
            ex.Message.ToString();
          }
    
        }
    
        void filtros_SelectedIndexChanged(object sender, EventArgs e)
        {
          ordenacao = filtros.SelectedIndex;
          Pagina = 1;
          uppMaisFotos.ContentTemplateContainer.Controls.Clear();
          CriarHtmlMaisFotos();
          uppMaisFotos.Update();
        }
    
        protected override void OnInit(EventArgs e)
        {
          if (Page != null && ScriptManager.GetCurrent(Page) == null)
          {
            Page.Form.Controls.AddAt(0, new ScriptManager());
          }
          
          base.OnInit(e);
        }
        
        public void CriarHtmlMaisFotos()
        {
          try
          {
            List<Foto> fotos = Foto.GetMaisFotos(MaximoFotos, Pagina, out Total, ordenacao);
            StringBuilder sb = new StringBuilder();
    
            if (fotos.Count > 0)
            {
              //sb.AppendLine("<h3 class='titMaisImagens'>Mais imagens<div class='divFiltro'><span class='filtro'><strong>Filtrar por</strong><select name='' class='custom'><option>Selecione o filtro </option></select></span></div></h3>");
              sb.AppendLine("<h3 class='titMaisImagens'>Mais imagens<div class='divFiltro'><span class='filtro'><strong>Filtrar por</strong>");
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
              sb = new StringBuilder();
    
              
              //uppMaisFotos.ContentTemplateContainer.Controls.Add(teste);
              sb.AppendLine("</span></div></h3>");
              sb.AppendLine("    <!-- Box Outras Imagens -->");
              sb.AppendLine("    <div class='divBoxOutrasNoticias'>");
              sb.AppendLine("      <div class='divBoxOutrasNoticiasTop'>");
              sb.AppendLine("        <div class='divFotosAprovadas divBoxBottom galeria'>");
              sb.AppendLine("          ");
              sb.AppendLine("          <ul class='outrasImagens'>");
    
              foreach (Foto foto in fotos)
              {
                Usuario usuario = new Usuario();
                //usuario = usuario.GetNomeUsuario(foto.IDPerfil);
                usuario.ID = "1";
                usuario.Nome = "Chapolin Colorado";
    
                if (foto.Descricao.Length > 45)
                  foto.Descricao = foto.Descricao.Substring(0, 46) + "...";
    
                sb.AppendLine("            <li>");
                sb.AppendFormat("              <div class='shadow'><a href='{0}'><img src='{1}' width='183' height='119' alt='{2}' /></a></div>", Res.urlDetalheFoto + foto.ID, foto.Url, foto.Titulo);
                sb.AppendFormat("              <span class='publicado'>Publicado em:<strong>{0}</strong></span><span class='por'>Por: <a href=\"{1}\"><strong>{2}</strong></a></span><p>{3}</p>", foto.DataFoto.ToString(Res.parDateFormat), SPContext.Current.Site.Url + Res.urlPerfilUsuario + usuario.ID, usuario.Nome, foto.Descricao);
                sb.AppendLine("            </li>	");
              }
    
              sb.AppendLine("          </ul>");
    
              //sb.AppendLine("          <ul class='paginacaoDestaque showAllNumbers'>");
              //sb.AppendLine("            <li class='next'><a href='javascript:void(0);'>&nbsp;</a></li>");
              //sb.AppendLine("            <li class='previous'><a href='javascript:void(0);'>&nbsp;</a></li>");
              //sb.AppendLine("            <li class='paginacaoDestaqueNumeros'>");
              //sb.AppendLine("              <a class='previous' href='javascript:void(0);'>&nbsp;</a>");
              //sb.AppendLine("              <div class='numbers'><a href='javascript:void(0);' class='active'>1</a><a href='javascript:void(0);'>2</a><a href='javascript:void(0);'>3</a></div>");
              //sb.AppendLine("              <a class='next' href='javascript:void(0);'>&nbsp;</a>");
              //sb.AppendLine("            </li>");
              //sb.AppendLine("          </ul>");
              //sb.AppendLine("        </div>");
              //sb.AppendLine("      </div>");
              //sb.AppendLine("    </div>");
              //sb.AppendLine("    <!-- /Box Outras Imagens -->");
            }
    
            uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
    
            #region Paginação
    
            if (Total > MaximoFotos)
            {
              sb = new StringBuilder();
    
              sb.AppendLine(@"				  <ul class=""paginacaoDestaque showAllNumbers"">
    	              <li class=""next"">");
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
    
              sb = new StringBuilder();
    
              //lkbNext = new LinkButton();
              lkbNext.Click += new EventHandler(lkbNext_Click);
              uppMaisFotos.ContentTemplateContainer.Controls.Add(lkbNext);
    
              sb.Append(@"</li>
                    <li class=""previous"">");
    
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
              sb = new StringBuilder();
    
              //lkbPrev = new LinkButton();
              lkbPrev.Click += new EventHandler(lkbPrev_Click);
              uppMaisFotos.ContentTemplateContainer.Controls.Add(lkbPrev);
    
              sb.Append(@"</li>
                    <li class=""paginacaoDestaqueNumeros"">");
    
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
              sb = new StringBuilder();
    
              lkbPrev.CssClass = "previous";
              uppMaisFotos.ContentTemplateContainer.Controls.Add(lkbPrev);
    
              sb.AppendLine(@"<div class=""numbers"">");
    
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
              sb = new StringBuilder();
    
              int tPaginas = (int)Math.Ceiling((double)Total / MaximoFotos);
    
              for (int i = 1; i <= tPaginas; i++)
              {
                lkbPagina = new LinkButton();
    
                if (i != Pagina)
                {
                  lkbPagina.CssClass = "active";
                }
    
                lkbPagina.Text = i.ToString();
                lkbPagina.Click += new EventHandler(lkbPagina_Click);
                uppMaisFotos.ContentTemplateContainer.Controls.Add(lkbPagina);
    
              }
    
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(@"</div>"));
    
              lkbNext.CssClass = "next";
              uppMaisFotos.ContentTemplateContainer.Controls.Add(lkbNext);
    
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(@"</li>"));
              sb.AppendLine("     </ul>");
    
              uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
    
            }
    
            #endregion
    
            sb = new StringBuilder();
    
            sb.Append(@"                
    						</div>
    					</div>
    				</div>
    				<!-- /Box Outras Imagens -->");
    
            uppMaisFotos.ContentTemplateContainer.Controls.Add(new LiteralControl(sb.ToString()));
          }
          catch (Exception ex)
          {
          }
    
              }
    
            //Fixing Form Action
        private void EnsureUpdatePanelFixups()
        {
          if (this.Page.Form != null)
          {
            string formOnSubmitAtt = this.Page.Form.Attributes["onsubmit"];
    
            if (formOnSubmitAtt == "return _spFormOnSubmitWrapper();")
            {
              this.Page.Form.Attributes["onsubmit"] = "_spFormOnSubmitWrapper();";
            }
          }
    
          ScriptManager.RegisterStartupScript(this, typeof(WPMaisFotos), "UpdatePanelFixup", "_spOriginalFormAction = document.forms[0].action; _spSuppressFormOnSubmitWrapper=true;", true);
        }
    quarta-feira, 22 de dezembro de 2010 16:39