问题描述
- asp.net创建一个3列,n行的表格,表格的具体要求如下。
-
第一列为列车车次,第二列为起点站,第3列为终点站
第一列的数据为select distinct ID from TrainTime order by ID查询语句的结果。
第二列的数据为select Station from TrainTime where S_No='1'order by ID的查询 结果。
第三列的数据为select Station from TrainTime where D_Time='-' order by ID的查询结果,
有没有大神能告诉怎么创建这个表格,求解啊!
解决方案
http://bbs.csdn.net/topics/391954105
解决方案二:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
public partial class Default2 : System.Web.UI.Page
{
// 步骤
// 1. 要有个总的方法来拼字符串 好比是 private string MakeString()
// 2. 在这个总的方法里面要有个来获取数据的方法 好比是 private DataTable FetchData()
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(MakeString());
}
private string MakeString()
{
DataTable dtData=FetchData();
StringBuilder strContent=new StringBuilder();
string strFormate="<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>";
strContent.Append("<table>");
foreach(DataRow row in dtData.Rows)
{
strContent.AppendFormat(strFormate, row[0].ToString(), row[1].ToString(), row[2].ToString());
}
strContent.Append("</table>");
return strContent.ToString();
}
private DataTable FetchData()
{
// 这里是拼装,你也可以自己获得
DataTable dtData=new DataTable();
dtData.Columns.Add("C1");
dtData.Columns.Add("C2");
dtData.Columns.Add("C3");
dtData.Rows.Add(new string[] { "1-1", "1-2", "1-3" });
dtData.Rows.Add(new string[] { "2-1", "2-2", "2-3" });
dtData.Rows.Add(new string[] { "3-1", "3-2", "3-3" });
dtData.Rows.Add(new string[] { "4-1", "4-2", "4-3" });
dtData.Rows.Add(new string[] { "5-1", "5-2", "5-3" });
return dtData;
}
}
解决方案三:
//产生表格
TableRow tRow;//定义数据表行
TableCell tCell;//定义数据表格
Label lblTitle;//定义标题标签
Label lblChapter;//定义章节标签
TextBox txtValue;//定义用来输入分数的文本框
numRows = 3;
numCells = 3;
//首先是给定了几行几列,
for (int iRow = 0; iRow <= numRows; iRow++)
{
tRow = new TableRow();//new出一个行来
for (int jCol = 0; jCol <= numCells; jCol++)
{
//判断如果是第一行则添加表头,表头为难度等级
if (iRow == 0)
{
//当为第一行时执行下列代码
if (jCol == 0)
{
//当为第一行第一列时
tCell = new TableCell(); //new出一个cell
lblTitle = new Label(); //这是我自己用的一个lable,你可以参考
lblTitle.Text = "难度系数:"; //给label赋值
lblTitle.Width = 80; //设置宽度
tCell.Controls.Add(lblTitle); //添加label到cell中
tRow.Cells.Add(tCell); //添加Cell到TableRow中
}
else
{
//如果不是第一列则:
tCell = new TableCell();
lblTitle = new Label();
lblTitle.Text = jCol.ToString().Trim();
tCell.HorizontalAlign = HorizontalAlign.Center;
tCell.Controls.Add(lblTitle);
tRow.Cells.Add(tCell);
}
}
else
{
//如果是第一列,则添加行标题。
if (jCol == 0)
{
tCell = new TableCell();
lblChapter = new Label();
lblChapter.Text = strChapter[iRow - 1].ToString() + ":";
lblChapter.Width = 80;
tCell.Controls.Add(lblChapter);
tCell.HorizontalAlign = HorizontalAlign.Center;
tRow.Cells.Add(tCell);
}
else
{
//不是第一行第一列则添加内容
tCell = new TableCell();
txtValue = new TextBox();
txtValue.ID = "txt" + iRow.ToString() + jCol.ToString();//给控件设置id,因为我以后要用到这个控件。
txtValue.Text = "0";
txtValue.Text = txtValue.Text.Trim();
tCell.Controls.Add(txtValue);
tRow.Cells.Add(tCell);
}
}
}
autoTable.Rows.Add(tRow);//添加TableRow
}
解决方案四:
<%
Dim i, j, iCols
i = 0 '//定义i进行循环
iCols = 3 '//一行有几列(正整数)
Response.Write(""&vbNewLine) '//输出Table头和第一个Tr
Do While Not oRs.EOF '//开始输出记录集 用 For ors.RecordCount Next 也行
If i>0 And i Mod iCols = 0 Then Response.Write(""&vbNewLine) '//如果列数等于 iCols 换行
i = i + 1
Response.Write("输出第 "&i&" 条记录"&vbNewLine)
oRs.MoveNext
Loop '//结束输出记录集
oRs.Close
For j = 1 To iCols -1 '//开始补足空记录,最多补iCols-1条
If i Mod iCols = 0 Then Exit For '//列数已经够 iCols 不再输出
i = i + 1
Response.Write("补足第 "&j&" 条记录"&vbNewLine)
Next
Response.Write(""&vbNewLine) '//输出Table尾
%>
解决方案五:
http://bbs.csdn.net/topics/300030296
解决方案六:
ASP.net表格Gridview行编辑
在ASP.Net中创建动态表格
asp.net动态创建表格
解决方案八:
Datatable可以 超级表可以吗?
时间: 2024-10-09 07:10:44