注册 登录
编程论坛 ASP.NET技术论坛

asp.net动态创建表格的问题

qq610116652 发布于 2009-10-19 11:24, 1536 次点击
页面中动态创建表格
代码1:
TableRow tr = new TableRow();

        TableCell tc1 = new TableCell();
        tc1.Text = "111";

        TableCell tc2 = new TableCell();
        tc2.Text = "222";

        TableCell tc3 = new TableCell();
        tc3.Text = "333";

        TableCell tc4 = new TableCell();
        tc4.Text = "444";

        tr.Cells.Add(tc1);
        tr.Cells.Add(tc2);
        tr.Cells.Add(tc3);
        tr.Cells.Add(tc4);

        this.Table1.Rows.Add(tr);
因为每次操作页面时,页面都会刷新,所以我将它写为一个方法,在Page_Load中每次调用,但我觉得这个比html慢(个人认为)所以我将上面的代码改为
代码2:
 string html = "<script type='text/javascript'> "
        + "function start() {"
        + "var mybody = document.getElementsByTagName('body')[0];"
        + "mytable     = document.getElementById('t');"
        + "mytablebody = document.createElement('tbody');"
        + "for(var j = 0; j < 10; j++) {"
        + "mycurrent_row = document.createElement('tr');"
        + "for(var i = 0; i < 10; i++) {"
        + "mycurrent_cell = document.createElement('td');"
        + " currenttext = document.createTextNode('单元格是第'+j+'行,第'+i+'列');"
        + "mycurrent_cell.appendChild(currenttext);"
        + "mycurrent_row.appendChild(mycurrent_cell);"
        + "}"
        + " mytablebody.appendChild(mycurrent_row);"
        + " }"
        + "mytable.appendChild(mytablebody);"
        + " mybody.appendChild(mytable);"
        + " mytable.setAttribute('border', '1');"
        + " }"
        + " </script>";
在页面中
<body onload="start()">
<table id="t" style="background-color:#EE9A00" runat="server">
        </table>
在Page_Load中Response.Write(html); 结果生成成功
但是在页面操作中却被刷新掉了,获取不了内容,代码1和代码2的意思都是一样的 但是为什么效果却不同
我在页面中手动画好html表格却可以!  希望大家帮忙解决下。
2 回复
#2
knowhat2009-11-05 11:03
可以不用这种方法,用ajax+handler
想要页面不刷,在.net后台write,HTML代码,并不是非常好,用Ajax+handler更有效!
#3
bygg2009-11-05 12:48
是的,不刷新就用ajax
1