在asp.net 中如何动态的创建表格?就是vs2008工具箱中的html table控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在asp.net 中如何动态的创建表格?就是vs2008工具箱中的html table控件相关的知识,希望对你有一定的参考价值。

动态创建是指可以创建用户指定行数列数的表格 请给出cs代码

文件1: Deafault.aspx
<%@ Page Language="C#"       CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
        <title>HtmlTable演示</title>
</head>
<body>
<h1>HtmlTable实例演示</h1>   
       <form id="Form1" runat="server">
          <table id="MyTable" cellpadding="5"       cellspacing="0" border="1"      runat="server" >
              <tbody>
              </tbody>
          </table><p>
          输入表格行数:
          <input type="text" id="MyTextOne" value="1"      runat="server"/></p>
          <p>输入表格单元格:
          <input type="text" id="MyTextTwo" value="1" runat="server" /></p>
          <p><input id="Submit1" type="submit" value="产生表格" runat="server" onserverclick="Submit1_ServerClick" /></p>
       </form>
</body>
</html>

文件2:Deafault.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page

        protected void Page_Load(object sender, EventArgs e)
        
        
        protected void Submit1_ServerClick(object sender, EventArgs e)
        
            int row = 0;
            int numrows = Convert.ToInt32(MyTextOne.Value);      // 获得文本框中整型数
            int numcells = Convert.ToInt32(MyTextTwo.Value);
            for (int j = 0; j < numrows; j++)
            
                HtmlTableRow r = new HtmlTableRow();
                if (row % 2 == 1)// 设置行的背景色
                    r.BgColor = "Gainsboro";
                row++;
                for (int i = 0; i < numcells; i++)
                
                    HtmlTableCell c = new HtmlTableCell(); //创建单元格对象
                    c.Controls.Add(new LiteralControl("行: " + (j + 1).ToString() + ", 单元格: " +(i + 1).ToString()));
                    r.Cells.Add(c); //添加该单元格对象
                
                MyTable.Rows.Add(r);//添加行对
            
            HtmlTableRow r2 = new HtmlTableRow();
            HtmlTableCell c2 = new HtmlTableCell();
            c2.Controls.Add(new LiteralControl("吉林大学远程教育学院"));
            c2.ColSpan = 3; //合并单元格,colspan属性可以实现单元格跨越多列
            r2.Cells.Add(c2);
            MyTable.Rows.Add(r2);
        

参考技术A <html>
<body>
<form runat="server">
<span>Table rows: </span><asp:TextBox ID="rows1" runat="server"></asp:TextBox>
<br />
<span>Table cells: </span><asp:TextBox ID="cells1" runat="server"></asp:TextBox>
<br/>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<br/>
<table id="t1" border="1" runat="server" visible="false"/>
</form>
</body>
</html>

C# 代码(Button1的响应函数)

//Button1_Click
protected void Button1_Click(object sender, EventArgs e)

int numrows = Int32.Parse(this.rows1.Text);
int numcells = Int32.Parse(this.cells1.Text);
int row=0;

for(int j=0;j<numrows;j++)

HtmlTableRow r=new HtmlTableRow();
row=row+1;
for(int i=0;i<numcels;i++)

HtmlTableCell c =new HtmlTableCell();
c.Controls.Add(New LiteralControl("row "+j+", cell "+ i));
r.Cells.Add(c);

this.t1.Rows.Add(r);
this.t1.Visible=true;



本回答被提问者和网友采纳
参考技术B 下面是手动创的。自己要加行就用<tr></tr> 想加列就在<tr><td></td>><td></td>><td></td></tr>
我帮你给一个5行6列的表。。你用的时候想要多大就自己拉
<table>
<tr>
<td>1</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

</tr>
<tr>
<td>2</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

</tr>
<tr>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

</tr>
<tr>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

</tr>
<tr>
<td>5</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
不知道你要的是不是这样的。但手动创这样可以。如果 要加东西就在这里面自己加。要加行就用<tr></tr>l要加列就在<tr></tr>中加。不懂的再问
参考技术C 不用去直接拖table控件的,切换到 设计 页面,把光标移到你要插入表格的地方,在工具栏上,有“表(A)”,单击它,再单击“插入表”,就会弹出对话框,在此就可以设置表的行数,列数以及表的一些属性了。 参考技术D 请说具体一点,你想实现什么功能

如何在 HTML 表格中传输 asp.net 网格视图数据

【中文标题】如何在 HTML 表格中传输 asp.net 网格视图数据【英文标题】:How to transfer asp.net grid view data in HTML table 【发布时间】:2011-03-13 17:17:12 【问题描述】:

我在 asp.net 中工作,我正在使用网格视图,现在我想将动态的网格视图数据转换为 html 表,以便我可以发送电子邮件。如果有人知道,请告诉我。 谢谢你

【问题讨论】:

【参考方案1】:

你可以使用

   using System.IO;
   using System.Text;
   using System.Net.Mail;

private string GridViewToHtml(GridView gv)

    StringBuilder sb = new StringBuilder();
    StringWriter sw = new StringWriter(sb);
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    gv.RenderControl(hw);
    return sb.ToString();


protected void SendMailButton_Click(object sender, EventArgs e)

    MailMessage mail = new MailMessage();
    mail.Body = GridViewToHtml(GridView1);
    mail.IsBodyHtml = true;
    // The same logic as you use for sending mail

public override void VerifyRenderingInServerForm(Control control)



【讨论】:

我的问题是 npt 发送电子邮件,我的问题是如何将 asp.net 网格视图数据转换为表格 @Renu123c 为什么需要桌子? @Renu123 - 您将在sb.ToString(); 中获得gridview html。我想这就是答案。【参考方案2】:

Kettic GridView 控件可以轻松地export the data in GridView to HTML 并创建一个 html 格式的文件以在 Web 浏览器或 MS Word 中查看。

【讨论】:

以上是关于在asp.net 中如何动态的创建表格?就是vs2008工具箱中的html table控件的主要内容,如果未能解决你的问题,请参考以下文章

以 ASP.NET MVC 表格形式动态添加行

asp.net做个简单的表格

GridView 对比HTML 表格 (ASP.net 2.0)

ASP.NET MVC 如何从嵌套对象的视图模型集合中动态创建表结构

ASP.NET 表冻结窗格(标题和列)

从动态创建的文本字段回发一个值 [ASP.net]