2009-08-22 7 views
1

Je cetteQu'est-ce que je fais mal HTMLWriter pas écrire attribut

foreach (var columnName in columns) 
{ 

    writer.RenderBeginTag(HtmlTextWriterTag.A); 
    writer.AddAttribute("href", null); 
    writer.Write("Delete"); 
    writer.RenderEndTag(); 
} 

Quand je reçois cette méthode dans ma classe d'aide html que je l'ai fait passe par cette boucle basée sur le nombre de colonnes sont en string [] colonnes paramètre. La première fois, il fait le tour je reçois ce

<a>Delete</a> 

2nd time it goes around 

<a href="">Delete</a> 

3rd time I get 

<a href="">Delete</a> 

and so on. 

pourquoi le premier manque le « href »? Je ne comprends pas.

Une chose l'écrivain est passé aussi comme paramètre dans.

Voici une application console. Je viens de remettre sur pied rapidement

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Web.UI; 
using System.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var writer = new HtmlTextWriter(new StringWriter()); 

      string[] columns = new string[4]; 
      columns[0] = "hi"; 
      columns[1] = "bye"; 
      columns[2] = "hi"; 
      columns[3] = "bye"; 

      foreach (var columnName in columns) 
      { 

       writer.RenderBeginTag(HtmlTextWriterTag.A); 
       writer.AddAttribute("href", "g"); 
       writer.Write("Delete"); 
       writer.RenderEndTag(); 
      } 
      Console.WriteLine(writer.InnerWriter.ToString()); 
     } 
    } 
} 

Répondre

3

Modifier la séquence des états:

writer.AddAttribute("href", "g"); 
writer.RenderBeginTag(HtmlTextWriterTag.A);         
+0

n'aurait pas deviner que. Merci – chobo2

+0

Oui, c'est un peu bizarre mais c'est facile de s'y habituer. Je suis tombé sur celui-là la première fois que j'ai utilisé un HtmlWriter. Ce qui est pire quand vous allez utiliser un HtmlGenericControl que vous créez d'abord '= new HtmlGenericControl (" a ");' et * puis * faire le '.Attributes.Add (" href "," g ")' (si vous étiez créer un contrôle générique de l'étiquette. – Joshua

Questions connexes