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

use*_*745 3 c# asp.net visual-studio-2008

如何复制表格控件?

table2=table1?
Run Code Online (Sandbox Code Playgroud)

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

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

string full; 
string userinput;
full = full + userinput;
Run Code Online (Sandbox Code Playgroud)

Dan*_*son 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);
        }
    }
Run Code Online (Sandbox Code Playgroud)