可以通过等号将表复制到另一个表吗?如果没有,那怎么样?

时间:2010-06-23 08:05:04

标签: c# asp.net visual-studio-2008

如何复制表格控件?

table2=table1?

ASP.NET C#Visual Studio 2008表控件。

原因是它适用于字符串。假设下面的字符串是表格。

string full; 
string userinput;
full = full + userinput;

1 个答案:

答案 0 :(得分:6)

编辑:自从2010年6月回答这个问题以来,我花了很多时间使用jQuery在客户端上做这类事情。如果对这种方法感兴趣,请查看jQuery clone()和append(),after(),before()和相关方法。 结束修改

不,你不能。与任何其他控件一样,表是引用类型。这意味着复制它只是复制对真实对象实例的引用。因为它没有实现System.ICloneable,您必须创建一个新的,然后逐个手动复制属性。

我很想知道你为什么要这样做,因为它似乎没有遵循我熟悉的任何最佳实践。你能描述一下你想要做什么吗?

您可以做的一件事是复制表的内容,虽然这不会复制其他属性,如样式和单元格填充等:

    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);
        }
    }