Você está na página 1de 3

Table Control:

23.1 How to create a table control dynamically to populate data?

<asp:Table id="Table1" runat="server"></asp:Table>

VB.NET

Dim mycn As SqlConnection


Dim myda As SqlDataAdapter
Dim ds As DataSet
mycn=NewSqlConnection("server=localhost;uid=sa;password=;database=northwind")
myda = New SqlDataAdapter("Select Employeeid, FirstName , LastName from employees", mycn)
ds = New DataSet
myda.Fill(ds, "Employees")

Dim dc As DataColumn
Dim dr As DataRow
For Each dr In ds.Tables(0).Rows
Dim trow As New TableRow
For Each dc In ds.Tables(0).Columns
Dim tcell As New TableCell
tcell.Controls.Add(New LiteralControl(dr(dc.ColumnName).ToString))
trow.Cells.Add(tcell)
Next
Table1.Rows.Add(trow)
Next

C#

SqlConnection mycn ;
SqlDataAdapter myda ;
DataSet ds ;
mycn=newSqlConnection("server=localhost;uid=sa;password=;database=northwind");
myda = new SqlDataAdapter("Select Employeeid, FirstName , LastName from employees", mycn);
ds = new DataSet();
myda.Fill(ds, "Employees");

TableRow trow ;
TableCell tcell;
foreach (DataRow dr in ds.Tables[0].Rows)
{
trow = new TableRow ();
foreach( DataColumn dc in ds.Tables[0].Columns)
{
tcell= new TableCell ();
tcell.Controls.Add(new LiteralControl(dr[dc.ColumnName].ToString()));
trow.Cells.Add(tcell);
}
Table1.Rows.Add(trow);
}
23.2 How to limit table cell size with long strings?

Set style property for the table cell as

style="WORD-BREAK:break-all"

23.3 How to use a Table control to display data vertically?

<asp:Table id="Table1" runat="server"></asp:Table>

VB.NET

'Populate the DataSet ds


Dim dr As DataRow
For Each dc In ds.Tables(0).Columns
Dim trow As New TableRow()
Dim tcellcolname As New TableCell()
'To Display the Column Names
For Each dr In ds.Tables(0).Rows
tcellcolname.Text = dc.ColumnName
trow.BackColor = System.Drawing.Color.Beige
tcellcolname.BackColor = System.Drawing.Color.AliceBlue
'Populate the TableCell with the Column Name
tcellcolname.Controls.Add(New LiteralControl(dc.ColumnName.ToString))
Next
trow.Cells.Add(tcellcolname)
'To Display the Column Data
For Each dr In ds.Tables(0).Rows
Dim tcellcoldata As New TableCell()
'Populate the TableCell with the Column Data
tcellcoldata.Controls.Add(New LiteralControl(dr(dc.ColumnName).ToString))
trow.Cells.Add(tcellcoldata)
Next
Table1.Rows.Add(trow)
Next

C#

//Populate the DataSet ds


foreach(DataColumn dc in ds.Tables[0].Columns )
{
TableRow trow = new TableRow();
TableCell tcellcolname = new TableCell() ;
foreach(DataRow dr in ds.Tables[0].Rows )
{
tcellcolname.Text = dc.ColumnName ;
trow.BackColor = System.Drawing.Color.Beige ;
tcellcolname.BackColor = System.Drawing.Color.AliceBlue ;
//Populate the TableCell with the Column Name
tcellcolname.Controls.Add(new LiteralControl(dc.ColumnName.ToString())) ;
}
trow.Cells.Add(tcellcolname) ;
//To Display the Column Data
foreach(DataRow dr in ds.Tables[0].Rows )
{
TableCell tcellcoldata =new TableCell() ;
//Populate the TableCell with the Column Data
tcellcoldata.Controls.Add(new LiteralControl(dr[dc.ColumnName].ToString())) ;
trow.Cells.Add(tcellcoldata);
}
Table1.Rows.Add(trow) ;
}

23.4 Are there any IE specific performance imporvement possible with


Table Layout?

In IE5 and later, significantly faster Table Rendering is now possible. Here is some information in MSDN :

Enhancing Table Presentation.

Among other things, you can specific col specific widths using the colgroup tag or col tag and also set the

visibility of rows and columns using special styles.

Você também pode gostar