תאריך פרסום: 12:11:23 21/04/2011
בעמוד ASP ניתן לבנות טבלאות באופן דינמי.
ראשית, אפשר ליצור טבלת ASP בשונה מטבלאות HTML רגילות:
html:
<asp:Table ID="Table1" runat="server" style="width:100%;text-align:center;">
<asp:TableRow ID="TableRow1" Runat="server" Font-Bold="True" ForeColor="Black" BackColor="Silver">
<asp:TableHeaderCell>First Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Last Name</asp:TableHeaderCell>
</asp:TableRow>
</asp:Table>
שם הטבלה הוא Table1 .
בדוגמה הצבנו שורה אחת,עם מאפיינים כמו צבע רקע, צבע גופן וכו', ואפשר גם לראות שימוש בשתי עמודות.
שורות ועמודות אפשר שלא להציב בכלל אלא לבנות אותן עם הבנייה הדינמית של הטבלה.
כלומר אפשר להציב ב-Html רק את השורות הבאות, ושאר הטבלה תיבנה בעזרת הפונקציה.
html:
<asp:Table ID="Table1" runat="server">
</asp:Table>
מעבר לזה, אפשר שלא להציב טבלה בכלל אלא לבנות אותה מתוך span:
html:
<span runat="server" id="tableSpan"></span>
מעבר לזה, אפשר שלא להציב טבלה בכלל אלא לבנות אותה מתוך span:
הפונקציה - כעת נוסיף שורות ועמודות - עמודות (TableRow) ותאים (TableCell) :
C#:
void BuildTable(string[] arr)
{
// CREATE TABLE
Table tbl = new Table();
// CREATE ROW:
TableRow tr = new TableRow();
// CREATE CELL:
TableCell tcel;
// CREATE ADD CELLS FOR EACH COLUMN:
foreach (string item in arr)
{
tcel = new TableCell();
tcel.Text = item;
// ADD CELL TO THE NEW ROW:
tr.Cells.Add(tcel);
}
// ADD ROW TO THE TABLE:
Table1.Rows.Add(tr);
tbl.Attributes.Add("width", "100%"); //set css style
tbl.Attributes.Add("text-align", "center"); //set css style
tableSpan.Controls.Add(t);
}
כפי שאפשר לראות הפונקציה מקבלת מערך arr המכיל את תוכן התאים בכל שורה חדשה.
בעזרת לולאת foreach אנו עוברים על התאים ומוסיפים אותם למשתנה המייצג שורה, ולבסוף מוסיפים את השורה לטבלה שמוכנה כבר בדף ה-ASP.
בשביל להכניס מספר שורות יש לבצע את הלולאה עצמה מספר פעמים, כלומר - לולאה בתוך לולאה.