Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique Gouvêa

Criando uma div no codebehind

Recommended Posts

Pessoal, alguém pode me ajudar?

Eu já tenho o seguinte código dentro de um foreach, que cria um menu com hyperlinks:

 

link.HyperLink.NavigateUrl = categoryURL;
link.HyperLink.Text = Server.HtmlEncode(category.LocalizedName);

 

Com isso, estou adicionando todas as categorias ao menu. Só que o layout ta zuado, eu preciso jogar cada item do menu dentro de uma div para especificar o tamanho desta div. Eu tentei usando HtmlTextWriter, mas não deu certo.

 

HtmlTextWriter writer = new HtmlTextWriter();

writer.WriteBeginTag("div");
writer.WriteAttribute("style", "width:130px");
writer.Write(HtmlTextWriter.TagRightChar);
this.HyperLink.RenderControl(writer);

link.HyperLink.NavigateUrl = categoryURL;
link.HyperLink.Text = Server.HtmlEncode(category.LocalizedName);

writer.WriteEndTag("div");

 

Não sei o que acontece, não consigo instanciar o HtmlTextWriter => 'System.Web.UI.HtmlTextWriter' does not contain a constructor that takes 0 arguments

Que parãmetro eu tenho que colocar aí???????

 

Obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da uma lida em http://msdn.microsoft.com/pt-br/library/system.web.ui.htmltextwriter.aspx#Y6800

Repare que para instaciar o novo há dois contrutores, onde cada um deles, tem que receber parametros.

Seu foreach percorre que controle?

Eu recomendaria usar Repeater, assim você monta bem mais facil e reduz o viewstate se não utilizar controles asp.net. a não ser que seja realmente necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, isso que eu não entendi. Que parâmetros eu tenho que passar?

O meu foreach está percorrendo minha tabela de categorias.

 

           foreach (var category in this.CategoryService.GetAllCategoriesByParentCategoryId(rootCategoryId))
           {
               var link = new NopCommerceLi();
               var linkVertical = new Li(); // LINKS DO MENU VERTICAL

               if (padding > 0)
               {
                   link.LiLeftMargin = padding.ToString();

                   linkVertical.LiLeftMargin = padding.ToString();
               }

               if ((quantidadeCategoria <= 5) && (category.ParentCategory == null))
               {
                   phCategories.Controls.Add(link);

                   phCategoriesPrincipal.Controls.Add(linkVertical);

                   quantidadeCategoria++;
               }
               else
               {
                   phCategoriesPrincipal.Controls.Add(linkVertical);
               }

               string categoryURL = SEOHelper.GetCategoryUrl(category);

               var currentCategoryTeste = CategoryService.GetCategoryById(category.CategoryId);

               // BUSCANDO TODAS AS SUBCATEGORIAS

               List<Category> breadCrumbTest = CategoryService.GetBreadCrumb(currentCategoryTeste.CategoryId);

               if (currentCategoryTeste != null && currentCategoryTeste.CategoryId == category.CategoryId)
               {
                   link.CssClass = "active";

                   linkVertical.CssClass = "active";
               }
               else
               {
                   link.CssClass = "inactive";

                   linkVertical.CssClass = "inactive";
               }

               HtmlTextWriter writer = new HtmlTextWriter();
               writer.WriteBeginTag("div");
               writer.WriteAttribute("style", "width:130px");
               writer.Write(HtmlTextWriter.TagRightChar);
               link.HyperLink.RenderControl(writer);

               link.HyperLink.NavigateUrl = categoryURL;
               link.HyperLink.Text = Server.HtmlEncode(category.LocalizedName);

               writer.WriteEndTag("div");

               linkVertical.HyperLink.NavigateUrl = categoryURL;
               linkVertical.HyperLink.Text = Server.HtmlEncode(category.LocalizedName);

               if (padding > 0)
               {
                   link.LiLeftMargin = padding.ToString();

                   linkVertical.LiLeftMargin = padding.ToString();
               }

               for (int i = 0; i <= breadCrumbTest.Count - 1; i++)
                   if (breadCrumbTest[i].CategoryId == category.CategoryId)
                       CreateChildMenu(breadCrumbTest, category.CategoryId, currentCategoryTeste, level);

               // DEIXA O FILTRO INVISIVEL

               master.exibeFiltro = false;

               master2.exibeFiltro = false;
           }

 

Deve ser uma dúvida idiota, desculpa aí...é que eu nunca usei o HtmlTextWriter

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.