Bei der Entwicklung von ASP.NET-Site-Projekten werden Daten häufig in Tabellenform angezeigt. Die am häufigsten verwendete Methode ist wahrscheinlich die Art und Weise, wie DataGrid DataSet-Daten bindet. In den Softwareprojekten, an denen ich gearbeitet habe, gibt es drei typische Arten der Verarbeitung tabellarischer Daten.
1. DataGrid bindet Datenquelle. Diese Methode wird am häufigsten verwendet, aber die perfekte Bindungsmethode zwischen DataGrid und ADO.NET ist immer noch ärgerlich. Der einheitliche DataGrid-Stil lässt sich nur schwer an die speziellen Stile verschiedener Projekte anpassen, und die Personalisierung im DataGrid ist sehr mühsam.
2. Verwenden Sie XML (Daten) + XSL (Stylesheet). Wie Sie verstehen können, ist der Implementierungsmechanismus der Bindung von DataSet an DataGrid nichts anderes. Wie in der Abbildung gezeigt, können Entwickler zur Implementierung einer solchen Tabelle den XSL-Stil beliebig gestalten.
3. Zeichnen Sie Daten direkt in HTML. Diese Methode ist etwas grob, aber manchmal ist sie sehr effektiv. Schauen wir uns zuerst den Implementierungscode an. Der folgende Code implementiert die in der obigen Abbildung gezeigte Tabelle.
1<table style="WIDTH: 100%; BORDER-COLLAPSE: Collapse; HEIGHT: 10px">
2 <tr>
3 <td align="center">
4 <TABLE id="tblContainer" class="MsoNormalTable" style="WIDTH: 380px; BORDER-COLLAPSE: Collapse; HEIGHT: 10px"
5 cellSpacing="0" cellPadding="6" border="1" runat="server" bordercolor="#99cccc">
6 <tr>
7 <td colspan="2" align="center">
8 <P><FONT size="3"><STRONG><FONT face="宋体">Personalpositionen der General Management-Abteilung</FONT></STRONG></FONT></P>
9 </td>
10 </tr>
11 <tr>
12 <td align="center" bgcolor="#003399"><FONT size="2" color="#ffffff"><STRONG>Personalname</STRONG></FONT></td>
13 <td align="center" bgcolor="#003399"><FONT size="2" color="#ffffff"><STRONG>Abteilungsposition</STRONG></FONT></td>
14 </tr>
15 </TABLE>
16 </td>
17 </tr>
18 </table>
Verwenden Sie direkt die Add-Methode von ASP.NET WebControls, um die Beschriftung zur HTML-Zelle hinzuzufügen.
1öffentliche Klasse WebForm2: System.Web.UI.Page
2 {
3
4 PersonRole strukturieren
5 {
6 öffentlicher String-Name;
7 öffentliche Streichrollen;
8}
9
10 protected System.Web.UI.HtmlControls.HtmlTable tblContainer;
11 öffentliche Zeichenfolge strAuditItemID = "A899B637-AC47-42EB-9B61-A61C9C880DDC";
12 private void Page_Load(object sender, System.EventArgs e)
13 {
14 //Geben Sie hier den Benutzercode ein, um die Seite zu initialisieren
15 if(Request.QueryString["AuditItemID"] != null)
16 {
17 strAuditItemID = Request.QueryString["AuditItemID"].ToString();
18}
19
20 GetTeamMember(strAuditItemID);
einundzwanzig }
zweiundzwanzig
23 Vom Web Forms Designer generierter Code#region Vom Web Forms Designer generierter Code
24 override protected void OnInit(EventArgs e)
25 {
26 //
27 // CODEGEN: Dieser Aufruf wird vom ASP.NET Web Forms-Designer benötigt.
28 //
29 InitializeComponent();
30 base.OnInit(e);
31}
32
33 /**//// <Zusammenfassung>
34 /// Designer unterstützt erforderliche Methoden – verwenden Sie zum Ändern keinen Code-Editor
35 /// Der Inhalt dieser Methode.
36 /// </summary>
37 private void InitializeComponent()
38 {
39 this.Load += new System.EventHandler(this.Page_Load);
40
41 }
42 #endregion
43
44 private void GetTeamMember(string AuditItemID)
45 {
46 Saiten strMaster, strTeamLeader, strPM;
47 ArrayList al = GetTeamMemberName(AuditItemID, out strMaster, out strTeamLeader, out strPM);
48
49 foreach(PersonRole pr in al)
50 {
51 HtmlTableCell cell=new HtmlTableCell();
52 cell.Align = "Center";
53 Label lbl = new Label();
54 lbl.Text = pr.name;
55 lbl.Font.Size = 9;
56
57 cell.Controls.Add(lbl);
58 HtmlTableRow row=new HtmlTableRow();
59 row.Cells.Add(cell);
60
61 HtmlTableCell cellRole = new HtmlTableCell();
62 cellRole.Align = "Center";
63 Label lblRole = new Label();
64 lblRole.Text = pr.role;
65 lblRole.Font.Size = 9;
66
67 cellRole.Controls.Add(lblRole);
68 row.Cells.Add(cellRole);
69
70 tblContainer.Rows.Add(row);
71 }
72 }
73
74 private ArrayList GetTeamMemberName(string AuditItemID, out string strMasterName, out string strTeamLeader,out string strPM)
75 {
76 ArrayList al = new ArrayList();
77 strMasterName = "None";
78 strTeamLeader = "None";
79 strPM = „Keine“;
80
81 PersonenRollenpr;
82 pr.name = „Zhang San“;
83 pr.role = „General Manager“;
84 al.Add(pr);
85
86 pr.name = "李思";
87 pr.role = „Stellvertretender Generaldirektor“;
88 al.Add(pr);
89
90 pr.name = "王五";
91 pr.role = "Sektionsmitglied";
92 al.Add(pr);
93
94 pr.name = „Zhao Liu“;
95 pr.role = "Abschnittsmitglied";
96 al.Add(pr);
97
98 Rückkehr al;
99 }
100}
Welche Methode beim Zeichnen einer Seite verwendet werden sollte, ist eine Frage der Meinung und Weisheit. In der Website-Entwicklung gibt es typische Anwendungen für diese drei Methoden. Ich habe festgestellt, dass die dritte Methode sehr effektiv ist, um die Leistungsprobleme einiger Seitenverarbeitungen zu lösen. Darüber hinaus kann die Layout-Seitensteuerung automatisiert werden und die personalisierte Verarbeitung ist einfacher als das Umschreiben von Render in DataGrid.