我现在有一段代码要动态生成一个table然后添加到html
HtmlTable table1 = new HtmlTable();
            table1.Border = 1;
            HtmlTableRow row;
            HtmlTableCell cell;            for (int i = 0; i < dt.Rows.Count; i++) {
                row = new HtmlTableRow();
                cell = new HtmlTableCell();
                cell.InnerHtml = dt.Rows[i][0].ToString();
                row.Cells.Add(cell);
                cell = new HtmlTableCell();
                cell.InnerHtml = dt.Rows[i][1].ToString();
                row.Cells.Add(cell);
                cell = new HtmlTableCell();
                cell.InnerHtml = dt.Rows[i][2].ToString();
                row.Cells.Add(cell);
                cell = new HtmlTableCell();
                cell.InnerHtml = dt.Rows[i][3].ToString();
                row.Cells.Add(cell);
                cell = new HtmlTableCell();
                cell.InnerHtml = dt.Rows[i][4].ToString();
                row.Cells.Add(cell);
                table1.Rows.Add(row);
            }
            Page.Controls.Add(table1);
但是,运行起来,这个table是添加到页面最下面的,有没有办法把它添加到我想要的地方。
还有,添加完后我想调用一段可以修改这个table的javascript,我要怎么写。

解决方案 »

  1.   


    可以在前台写一个<asp:literal的容器,然后往该容器中传入table将table赋值给一个id即可操作。 如果table的ID无法写死而是动态生成的,那么你就需要将ID也存入前台了(可以考虑使用hidden)
      

  2.   

    前台放一个div,panel等容器(一定要runat="server")
    然后用这容器.Controls.Add(table1);这样table就在这个容器里了
      

  3.   

    把我下面的行换为table就ok了! <%@ page language="C#" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%> <html> <head> <script type="text/javascript"> function contactlist(){         var table = document.getElementById("contactTable");         var tr = table.insertRow(table.rows.length);//添加一行         tr.align="center";         tr.bgcolor="#F3F4F3";         tr.height="23";           //添加五列         var td0 = tr.insertCell(0);         td0.width="20%";         var td1 = tr.insertCell(1);         td1.width="20%";         var td2 = tr.insertCell(2);         td2.width="8%";         var td3 = tr.insertCell(3);         td3.width="30%";         var td4 = tr.insertCell(4);         td4.width="20%";                   //设置列内容         td0.innerHTML = "";         td1.innerHTML = "<input type='file' id='dataAudio' name='dataAudio'/><input type='hidden' name='dataAudios'/><input type='hidden' name='audioOldName'/>";         td2.innerHTML = "<input type='text' name='playDateTime' id='playDateTime' onkeyup='validateNumber(this);' size='5' maxlength='3' style='color: red' />";         td3.innerHTML = "<input type='text' name='content' id='content' size='35' maxlength='300'/>";         td4.innerHTML = "<input type='button' value='删除' onclick='removeRow(this.parentNode.parentNode)'/>";               }   function removeRow(r) {     var root = r.parentNode;     var allRows = root.getElementsByTagName('tr');     if(allRows.length > 3){         root.removeChild(r);     }else{         alert("不能删除改行!");     } } </script > </head>     <body>   <table id="contactTable" width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#D9D9D9">          <tr bgcolor="#F3F4F3" align="center" height="23">            <td colspan="5" align="left"><input type="button" value="添加帧" class="button" onclick="return contactlist();"/></td>         </tr>         <tr bgcolor="#F3F4F3" align="center" height="23">            <td width="20%">上传图片</td>            <td width="20%">上传声音</td>            <td width="8%">播放时间</td>            <td width="30%">内    容</td>            <td width="20%">操作</td>         </tr>     </table>   </body> </html> 
      

  4.   

    地址 行换为table
      

  5.   

    最简单的,可以写this.Form.Controls.Add(table1);
    也可以放在具体的控件内,比如Panel1.Controls.Add(table1);
      

  6.   

    asp.net的“空”布局容器叫做 PlaceHolder。如果你不知道这个控件,我建议考虑是否应该学习asp.net问题。只有你放起了asp.net,才应该考虑别的。至于第二个问题,我认为很难评估你是否真的会javascript,不知道怎样说你能明白。因此也无法替你写代码。
      

  7.   

    只有你放起了asp.net,才应该考虑别的  -->  只有你放弃了asp.net,才应该考虑别的如果你打算专攻前端web开发,那么这就几乎扯不上asp.net服务器控件,你进需要将数据写出到<div><div>的符合html语法的两层数据形式,然后用javascript来在浏览器端产生<table>就行了。如果你打算使用asp.net,那么你应该深入学习asp.net服务器控件,以及用户控件、自定义控件等开发知识。像PlaceHolder这个控件简直就好像是“while、if...else语句”一样是最简单最常用的控件了,你把几个东西组合进一个容器来就可以随时整体移动到其它地方,当然也可以随时局部刷新这个容器内容。如果没有人能够教你asp.net开发,只能扯一些asp.net mvc之类的概念,我建议你放弃学asp.net而专心学习前端web开发。以免把精力耗在无用的地方。