后台动态生成table表格

以前看到动态生成table的代码时,认为特别复杂,看到代码就不想看,认为这个用不到,而且还抱着一种难的心理.

不管则着,还是逃不过,躲避不是好的方法,这次就用到了动态生成表的要求,不学不行呀,不然页面达不到效果.

下面是我自己实现的一个实例

首先是在前台页面拖出一个htmltable , 我们可以设定表头,也可不设定表头

这里我就自己设定表头了


<html>
<body>
    <form id="form1"runat="server">
< tableid="tblAutoTable" class="data-table history"runat="server" style="width: 68%; margin-bottom: 0px; height:40px; margin: 0 ;" >
            <thead>
            <tr>       
                    <thalign="left">文件名</th>
                        <th  align="left">文件大小                           
                       </th>
                <thalign="left"><input type="checkbox"id="checkAll" name="checkAll" />
                     </th>
                 </tr>
                </thead>
            <tbody >
<!--这里是要进行拼接的表-->
            </tbody>
        </table>
</form>
</body>
</html>

后台怎么设定,首先是获取查询到的数据(我是用Datatable获取查询到的数据的).


1后台循环dtatable中的行作为循环的次数.

2创建表的行

3创建表的列(可多列),给列赋值

4将列添加到表的行中

5将行添加到表中,进行循环,就得到一个表

 

下面是实例代码

#region 查询文件
        /// <summary>
        /// 查询文件
        /// </summary>
        private void QueryFile()
        {
//创建Mongobd非结构化数据库连接
            MongoDatabase db = getConn();
            // MongoGridFS fs = newMongoGridFS(db); //默认读取的集合表名是filse
//设定查询的表名
            MongoGridFSSettings fsSetting = newMongoGridFSSettings() { Root = fileTable };
//初始化查询对象
            MongoGridFS fs = newMongoGridFS(db, fsSetting);
//执行查询的方法
           MongoCursor<MongoGridFSFileInfo> docList = fs.FindAll();
 
            HtmlTableRow trFirst = newHtmlTableRow();//tianjai yihang
            HtmlTableCell tcTitle = newHtmlTableCell();
            tcTitle.InnerText ="文件名";
            trFirst.Controls.Add(tcTitle);
           //tblAutoTable.Controls.Add(trFirst);
            foreach (MongoGridFSFileInfo doc indocList)
            {
 
                UInt32 length =Convert.ToUInt32(doc.Length);
                string size = null;
                if (length > 1024 * 1024)
                    size = ((double)length /1024 / 1024).ToString("F2") + "MB";
                else if (length > 1024)
                    size = ((double)length /1024).ToString("F2") + "KB";
                else
                    size = length.ToString() +"B";
 
                //动态拼接表
                HtmlTableRow tr = newHtmlTableRow();
                //添加文件名列
               
                HtmlTableCell tcCol = newHtmlTableCell();
                string name = doc.Name;//获取文件名
                tcCol.Width ="300";//设定列的宽度
                tcCol.InnerHtml = "<ahref='/Teacher/mongodb/FileManage.ashx?action=DOWNLOAD&value="+name+"'target='_blank'>"+name+"</a>";//文件名实现单机下载图片
                //Response.Write(name);
               tr.Controls.Add(tcCol);//将文件名列添加到行中
 
                //添加文件大小列
                HtmlTableCell tc = newHtmlTableCell();
                TextBox tb = newTextBox();//创建文本框对象
                tb.Width = 120;//设定宽度
                tb.Text = size;//设定文本框中的值
                tc.Controls.Add(tb);//单元格内容赋值
                tr.Controls.Add(tc);
               tblAutoTable.Controls.Add(tr);//将行添加到表中
 
                添加删除选项
                //HtmlTableCell tcCheck = newHtmlTableCell();
                //CheckBox tbcheck = newCheckBox();
               //tcCheck.Controls.Add(tbcheck);
                //tcCheck.Width ="50";
               //tr.Controls.Add(tcCheck);                            
            }
        }
        #endregion

实例效果图如下



从代码的实例中可以看出,创建表格就是实例化对象,然后给对象赋值,它和先前的对象如出一辙的,并没有想象的那么难。


对比:

对于一个已经创建好的Dtatable,如何给Datatable循环添加行和列,于此类似,大家可以对比研究。

 

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 48
    评论
评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值