2010-06-23 3 views

Répondre

6

Edit: Depuis répondre à cette question en Juin 2010, j'ai passé beaucoup de temps à l'aide jQuery pour faire ce genre de chose sur le client. Si vous êtes intéressé par cette approche, examinez les méthodes jQuery clone() et append(), after(), before() et les méthodes associées. Fin Modifier

Non, vous ne pouvez pas. La table, comme tout autre contrôle, est un type de référence. Cela signifie que la copie copie simplement une référence à l'instance d'objet réel. Parce qu'il n'implémente pas System.ICloneable vous devez en créer un nouveau, puis copier les propriétés manuellement un par un.

Je serais curieux de savoir pourquoi vous essayez de le faire, car il ne semble pas suivre les meilleures pratiques que je connais. Pourriez-vous décrire ce que vous essayez de faire?

Une chose que vous pouvez faire est de copier le contenu d'une table, bien que cela ne sera pas copier les autres propriétés telles que les styles et etc-remplissage des cellules:

protected void CopyTable() 
    { 
     var clontable= new HtmlTable(); 
     var mytbl = form1.FindControl("mytable") as HtmlTable; 
     if (mytbl != null) 
     { 
      HtmlTableRow myrow; 
      HtmlTableCell mycell; 

      for (int i = 0; i < mytbl.Rows.Count - 1; i++) 
      { 
       myrow = new HtmlTableRow(); 
       for (int j = 0; j < mytbl.Rows[i].Cells.Count - 1; j++) 
       { 
        mycell = new HtmlTableCell(); 
        mycell.InnerHtml = mytbl.Rows[i].Cells[j].InnerHtml; 
        myrow.Cells.Add(mycell); 
       } 
       clontable.Rows.Add(myrow); 
      } 
      form1.Controls.Add(clontable); 
     } 
    } 
+0

pourrait être un System.Web.UI. WebControls.Table. –

+0

Dans ce cas, vous devez simplement supprimer le code HTML de HtmlTable, HtmlRiow et HtmlCell et modifier la propriété InnerHtml en texte. Ensuite, il fera de même. –

+0

Merci beaucoup pour le code et pour le point pour un contrôle de table asp.net. merci – user287745

Questions connexes