عند تطوير مشاريع موقع ASP.NET، غالبًا ما يتم عرض البيانات في شكل جدول. ربما تكون الطريقة الأكثر استخدامًا هي الطريقة التي تربط بها DataGrid بيانات DataSet. في المشاريع البرمجية التي عملت عليها، هناك ثلاث طرق نموذجية لمعالجة البيانات الجدولية.
1. DataGrid يربط مصدر البيانات. هذه الطريقة هي الأكثر استخدامًا، لكن طريقة الربط المثالية بين DataGrid وADO.NET لا تزال مزعجة. من الصعب التكيف مع نمط DataGrid الموحد مع الأنماط الخاصة للمشاريع المختلفة، وسيكون التخصيص على DataGrid مزعجًا للغاية.
2. استخدم XML (البيانات) + XSL (ورقة الأنماط). كما تفهم، فإن آلية تنفيذ ربط DataSet بـ DataGrid ليست أكثر من هذا. كما هو موضح في الشكل، لتنفيذ مثل هذا الجدول، يمكن للمطورين تصميم نمط XSL بقدر ما يريدون.
3. ارسم البيانات مباشرة إلى HTML. هذه الطريقة بسيطة بعض الشيء، لكنها في بعض الأحيان تكون فعالة جدًا. الكود التالي ينفذ الجدول الموضح في الشكل أعلاه.
1<نمط الجدول = "العرض: 100%; انهيار الحدود: طي; الارتفاع: 10 بكسل">
2 <ر>
3 <td align="center">
4 <TABLE id = "tblContainer" class = "MsoNormalTable" style = "العرض: 380 بكسل؛ انهيار الحدود: الانهيار؛ الارتفاع: 10 بكسل"
5 تباعد الخلايا = "0" cellPadding = "6" الحدود = "1" runat = "الخادم" bordercolor = "#99cccc">
6 <ر>
7 <td colspan = "2" محاذاة = "مركز">
8 <P><FONT size="3"><STRONG><FONTface="宋体">وظائف الموظفين في قسم الإدارة العامة</FONT></STRONG></FONT></P>
9 </TD>
10 </tr>
11 <ر>
12 <td align="center" bgcolor="#003399"><FONT size="2" color="#ffffff"><STRONG>اسم الموظف</STRONG></FONT></td>
13 <td align="center" bgcolor="#003399"><FONT size="2" color="#ffffff"><STRONG>منصب القسم</STRONG></FONT></td>
14 </tr>
15 </الجدول>
16 </TD>
17 </tr>
18 </الجدول>
استخدم مباشرة طريقة Add الخاصة بـ ASP.NET WebControls لإضافة التسمية إلى خلية HTML.
1 فئة عامة WebForm2: System.Web.UI.Page
2 {
3
4 هيكل بيرسونول
5 {
6 اسم السلسلة العامة؛
7 دور السلسلة العامة؛
8}
9
10 System.Web.UI.HtmlControls.HtmlTable tblContainer;
11 سلسلة عامة strAuditItemID = "A899B637-AC47-42EB-9B61-A61C9C880DDC";
12 Page_Load باطلة خاصة (مرسل الكائن، System.EventArgs e)
13 {
14 //ضع رمز المستخدم هنا لتهيئة الصفحة
15 إذا (Request.QueryString["AuditItemID"] != فارغة)
16 {
17 strAuditItemID = Request.QueryString["AuditItemID"].ToString();
18}
19
20 GetTeamMember(strAuditItemID);
واحد وعشرون }
إثنان وعشرون
23 الكود الذي تم إنشاؤه بواسطة مصمم نماذج الويب # رمز المنطقة الذي تم إنشاؤه بواسطة مصمم نماذج الويب
24 تجاوز الباطل المحمي OnInit (EventArgs e)
25 {
26 //
27 // CODEGEN: هذا الاستدعاء مطلوب من قبل مصمم نماذج الويب ASP.NET.
28 //
29 إنيتياليزكومبونينت ()؛
30 base.OnInit(e);
31}
32
33 /**//// <الملخص>
34 /// يدعم المصمم الطرق المطلوبة - لا تستخدم محرر التعليمات البرمجية للتعديل
35 /// محتوى هذه الطريقة.
36 /// </summary>
37 تهيئة الفراغ الخاص ()
38 {
39 this.Load += new System.EventHandler(this.Page_Load);
40
41 }
42 #المنطقة
43
44 GetTeamMember (سلسلة AuditItemID) فارغة خاصة
45 {
46 سلسلة 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 = "المركز";
53 تسمية lbl = تسمية جديدة();
54 lbl.Text = pr.name;
55 رطلاً. حجم الخط = 9؛
56
57 خلية.Controls.Add(lbl);
58 HtmlTableRowrow=new HtmlTableRow();
59row.Cells.Add(cell);
60
61 HtmlTableCell cellRole = new HtmlTableCell();
62 cellRole.Align = "المركز";
63 التسمية lblRole = تسمية جديدة();
64 lblRole.Text = pr.role;
65 lblRole.Font.Size = 9;
66
67 cellRole.Controls.Add(lblRole);
68row.Cells.Add(cellRole);
69
70 tblContainer.Rows.Add(row);
71 }
72 }
73
74 الخاص ArrayList GetTeamMemberName (سلسلة AuditItemID، خارج سلسلة strMasterName، خارج سلسلة strTeamLeader، خارج سلسلة strPM)
75 {
76 ArrayList al = new ArrayList();
77 strMasterName = "لا شيء";
78 strTeamLeader = "لا شيء";
79 strPM = "لا شيء";
80
81 دور الشخص العلاقات العامة؛
82 pr.name = "تشانغ سان";
83 pr.role = "المدير العام";
84 al.Add(pr);
85
86 pr.name = "李思";
87 pr.role = "نائب المدير العام";
88 al.Add(pr);
89
90 pr.name = "王五";
91 pr.role = "عضو القسم";
92 al.Add(pr);
93
94 pr.name = "تشاو ليو";
95 pr.role = "عضو القسم";
96 al.Add(pr);
97
98 عودة آل؛
99 }
100}
عند رسم الصفحة، فإن الطريقة التي يجب استخدامها هي مسألة رأي وحكمة. في تطوير مواقع الويب، تتمتع هذه الطرق الثلاثة بتطبيقات نموذجية، وخاصة الطريقة الثالثة التي وجدت أنها فعالة جدًا في حل مشكلات الأداء الخاصة ببعض معالجة الصفحات. علاوة على ذلك، يمكن أتمتة التحكم في صفحة التخطيط، وتكون المعالجة الشخصية أسهل من إعادة كتابة Render في DataGrid.