หาก DataGrid ใช้การแบ่งหน้า หน้าสุดท้ายอาจไม่ "เต็มหน้า" ดังนั้นอาจมีปัญหากับเค้าโครงของ DataGrid แถวที่เหลือจะกว้างเกินไป และ DataGrid ทั้งหมดจะน่าเกลียด
วิธีแก้ปัญหาอาจพิจารณาได้จากสามแห่ง:
1. กรอกแถวข้อมูลใหม่ในแหล่งข้อมูล
2. กรอกแถวควบคุมว่างใหม่ใน DataGrid
3. ใช้จาวาสคริปต์เพื่อกรอกแถวควบคุม html ใหม่ในหน้าเว็บ
ฉันใช้วิธีที่สอง ในวิธีการตอบกลับของเหตุการณ์ prerender ของ DataGrid ให้กรอกบรรทัดว่างด้านบนบรรทัดส่วนท้าย รหัสจะเป็นดังนี้:
protected virtual void SpiderSurfGrid_PreRender(object sender, System.EventArgs e)
-
DataGridItem dgi;
System.Web.UI.WebControls.TableCell ตารางเซลล์;
System.Web.UI.WebControls.TableRow แถวตาราง;
ตาราง DataGrid = (ผู้ส่งเป็น DataGrid);
ถ้า (grid.Controls.Count == 0) กลับ;
ตาราง System.Web.UI.WebControls.Table = (grid.Controls[0] เป็น System.Web.UI.WebControls.Table);
tablerow = (System.Web.UI.WebControls.TableRow)(table.Controls[1]);
สำหรับ(int j=this.PageSize+4-table.Controls.Count;j>0;j--)
-
dgi = DataGridItem ใหม่ (0,0,ListItemType.Item);
สำหรับ (int i = 0; i <tablerow.Controls.Count; i ++)
-
tablecell = System.Web.UI.WebControls.TableCell ใหม่ ();
dgi.Cells.Add(ตารางเซลล์);
-
table.Controls.AddAt(ตาราง.Controls.Count-2,dgi);
-
}
คำอธิบาย: สิ่งที่พิจารณาในที่นี้คือ DataGrid ที่ผูกไว้กับแถวส่วนหัว/ท้ายกระดาษ/เพจเจอร์และเพจเจอร์ด้านล่าง
สิ่งที่แปลกคือฉันไม่สามารถเพิ่ม cssstyle ลงในบรรทัดได้ที่นี่ เมื่อฉัน dgi.cssstyle="dumpTableRowClass";
ต้นฉบับโดย athossmth โปรดระบุเมื่อพิมพ์ซ้ำ