การควบคุม DataGrid นั้นมีชื่อเสียงเกินไปดังนั้นฉันจึงใช้หลายสิ่งหลายอย่างมาก่อน นี่คือส่วนใหญ่เกี่ยวกับการควบคุม Datalist
การควบคุม Datalist นั้นมีประสิทธิภาพมาก จุดตัด จุดตัด
มันเป็นอาการปวดหัว
อย่างไรก็ตาม Datalist ไม่ได้จัดเตรียมฟังก์ชั่นการเพจในตัว แต่ไม่ได้หมายความว่าเราไม่สามารถใช้ตัวควบคุม Datalist เพื่อใช้การเพจ
ด้านล่างเป็นรหัสดั้งเดิมทั้งหมด
(โปรแกรมนี้ได้รับการทดสอบภายใต้. NET Framework Beta 2)
< % @ Page Language = C# %>
< % @ import namespace = system.data %>
< % @ import namespace = system.data.oledb %>
<ภาษาสคริปต์ = c# runat = เซิร์ฟเวอร์>
-
สร้างโดยมีดบิน
http://www.aspcn.com
2001-7-25 01:44
สนับสนุน. NET Framework Beta 2
-
OLEDBCONNECTION MYCONN;
int pagesize, recordcount, pagecount, currentpage;
โมฆะสาธารณะ page_load (Object SRC, EventArgs E)
-
// ตั้งค่าหน้าเว็บ
PAGESIZE = 10;
// เชื่อมต่อ
String myConnstring = ผู้ให้บริการ = microsoft.jet.oledb.4.0;
myConn = ใหม่ oledbconnection (myConnstring);
myconn.open ();
// คำขอแรกสำหรับการดำเนินการ
if (! page.ispostback)
-
ListBind ();
currentPage = 0;
ViewState [PageIndex] = 0;
// จำนวนบันทึกทั้งหมดที่คำนวณทั้งหมด
recordCount = calculateCord ();
lblRecordCount.Text = recordCount.TOSTRING ();
// จำนวนหน้าทั้งหมดที่คำนวณทั้งหมด
pageCount = recordCount/pagesize;
lblpagecount.text = pagecount.toString ();
ViewState [pagecount] = pagecount;
-
-
// คำนวณจำนวนระเบียนทั้งหมด
public int calcultecord ()
-
int intcount;
String strCount = SELECT COUNT (*) เป็น CO จากคะแนน;
OLEDBCOMMAND MYCOMM = ใหม่ OLEDBCOMMAND (StrCount, MyConn);
OLEDBDATAREADER DR = MYCOMM.EXECUTEREADER ();
ถ้า (Dr.Read ()))
-
intCount = int32.parse (DR [CO] .ToString ());
-
อื่น
-
intCount = 0;
-
dra.close ();
กลับ intcount;
-
ICOLLECTION CREATESOURCE ()
-
Int StartIndex;
// ตั้งค่าที่อยู่เริ่มต้นของการนำเข้า
startIndex = currentPage*pagesize;
strest strsel = select * จากคะแนน;
ชุดข้อมูล ds = ชุดข้อมูลใหม่ ();
OLEDBDATADAPTER myAdapter = ใหม่ OLEDBDATAADAPTER (Strsel, MyConn);
myadapter.fill (ds, startIndex, pagesize, คะแนน);
ส่งคืน ds.tables [คะแนน] .defaultView;
-
void public listbind ()
-
Score.datasource = createsource ();
คะแนน databind ();
lbnnextPage.enabled = true;
lbnprevPage.enabled = true;
ถ้า (currentPage == (pagecount-)) lbnnextPage.enabled = false;
if (currentPage == 0) lbnprevPage.enabled = false;
lblCurrentPage.Text = (currentPage+1) .tring ();
-
โมฆะสาธารณะ page_onclick (ผู้ส่งวัตถุ, CommandEventArgs E)
-
currentPage = (int) viewState [pageindex];
pagecount = (int) viewstate [pagecount];
สตริง cmd = e.comandname;
// ผู้พิพากษา CMD เพื่อกำหนดทิศทางของการหมุนหน้าเว็บ
สวิตช์ (CMD)
-
กรณีถัดไป:
ถ้า (CurrentPage <(pagecount-)) CurrentPage ++;
หยุดพัก;
กรณีก่อนหน้า:
if (currentPage> 0) currentPage-;
หยุดพัก;
-
ViewState [PageIndex] = CurrentPage;
ListBind ();
-
</script>
<html>
<head>
<title> </title>
</head>
<body>
<form runat = เซิร์ฟเวอร์>
ร่วมกัน <ASP: LABEL ID = LBLRECORTCOUNT PORESTOLOR = RED RUNAT = SERVER />
ปัจจุบันคือ <asp: label id = lblCurrentPage porecolor = red runat = เซิร์ฟเวอร์ /> /<asp: label id = lblPageCount porecolor = raunat raunat = เซิร์ฟเวอร์ />
<ASP: Datalist ID = คะแนน runat = เซิร์ฟเวอร์
headstyle-backcolor =#aaaadd
STERVERATIONATIONITEMSTYLE-BACKCOLOR = Gainsboro
EditItemStyle-BackColor = สีเหลือง
-
<Temtemplate>
ชื่อ: < %# databinder.eval (container.dataitem, ชื่อ) %>
<asp: linkbutton id = btnselect text = editor commandname = แก้ไข runat = เซิร์ฟเวอร์ />
</itemTemplate>
</asp: Datalist>
<ASP: LinkButton ID = LBNPREVPAGE TEXT = หน้าก่อนหน้า commandName = prev oncommand = page_onclick runat = เซิร์ฟเวอร์ />
<asp: linkbutton id = lbnnextpage text = next commandName = next oncommand = page_onclick runat = เซิร์ฟเวอร์ />
</form>
</body>
</html>
ผลการทำงานดังที่แสดงด้านบน :)
เมื่อคุณเขียนโปรแกรมสิ่งที่สำคัญที่สุดคือคิดด้วยตัวเอง คำถามง่ายเกินไปไม่มีใครเต็มใจที่จะตอบ
การคิดมากและการตรวจสอบข้อมูลกำลังได้รับจริงๆ