التحكم في بيانات البيانات مشهور للغاية ، لذلك استخدمت الكثير من الأشياء من قبل. هذا هو أساسا عن التحكم في أخصائي البيانات.
يعد التحكم في Datalist قويًا للغاية. التقاطع التقاطع
إنه بالفعل صداع.
ومع ذلك ، لا يوفر Datalist وظيفة ترحيل مدمجة ، ولكن هذا لا يعني أنه لا يمكننا استخدام عنصر التحكم في Datalist لتنفيذ الترحيل.
فيما يلي كل الكود الأصلي.
(يتم اختبار هذا البرنامج ضمن .NET Framework Beta 2)
<٪ @ page language = c# ٪>
<٪ @ استيراد المساحة = system.data ٪>
<٪ @ استيراد المساحة = system.data.oledb ٪>
<لغة البرنامج النصي = c# runat = server>
/*
ابتكر عن طريق تحلق سكين
http://www.aspcn.com
2001-7-25 01:44
دعم .NET Framework Beta 2
*/
OledbConnection Myconn ؛
int pagesize ، recordcount ، pagecount ، currentpage ؛
public void page_load (كائن SRC ، EventArgs E)
{{
// تعيين pagesize
pagesize = 10 ؛
// يتصل
String MyConnstring = Provider = Microsoft.jet.oledb.4.0 ؛
myconn = OLEDBConnection جديد (myConnString) ؛
myconn.open () ؛
// الطلب الأول للتنفيذ
إذا (! page.ispostback)
{{
listbind () ؛
page current = 0 ؛
ViewState [pageIndex] = 0 ؛
// كم عدد السجلات المحسوبة في المجموع
RecordCount = calculatecord () ؛
lblRecordCount.text = recordCount.ToString () ؛
// كم عدد الصفحات المحسوبة في المجموع
pageCount = recondCount/pagesize ؛
lblPageCount.text = pagecount.toString () ؛
ViewState [pageCount] = pageCount ؛
}
}
// حساب عدد السجلات الموجودة في المجموع
عام int calcultecord ()
{{
int intcount ؛
String strcount = حدد العد (*) كشركة من الدرجة ؛
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 ؛
String Strel = SELECT * من النتيجة ؛
مجموعة البيانات ds = مجموعة بيانات جديدة () ؛
OLEDBDATADAPTER MYADAPTER = OLEDBDATAADAPTER جديد (Strel ، Myconn) ؛
myadapter.fill (ds ، startIndex ، pagesize ، score) ؛
إرجاع ds.tables [Score] .DefaultView ؛
}
public void listbind ()
{{
Score.datasource = createSource () ؛
Score.Databind () ؛
lbnnextPage.Enabled = true ؛
lbnprevpage.enabled = true ؛
if (currentpage == (pageCount-)) lbnnextPage.enabled = false ؛
if (currentpage == 0) lbnprevpage.enabled = false ؛
lblCurrentPage.text = (CurrentPage+1) .tring () ؛
}
public void page_onclick (مرسل الكائن ، commandeventargs e)
{{
CurrentPage = (int) viewState [pageIndex] ؛
pageCount = (int) viewState [pageCount] ؛
String cmd = e.comandname ؛
// القاضي CMD لتحديد اتجاه تحول الصفحة
التبديل (CMD)
{{
القضية التالية:
if (currentpage <(pagecount-)) currentpage ++ ؛
استراحة؛
القضية السابقة:
if (currentpage> 0) currentpage- ؛
استراحة؛
}
ViewState [pageIndex] = CurrentPage ؛
listbind () ؛
}
</script>
<html>
<head>
<title> </title>
</head>
<body>
<form runat = server>
معا <asp: lable id = lblrecordCount Forecolor = Red Runat = server />
التيار هو <asp: lable id = lblCurrentPage forecolor = red runat = server /> /<asp: label id = lblPageCount forecolor = red raunat = server />
<ASP: معرف Datalist = Score Runat = Server
Headstyle-BackColor =#aaaadd
levedItemStyle-BackColor = Gainsboro
editiTemstyle-BackColor = أصفر
"
<temtemplate>
الاسم: <٪# databinder.eval (Container.dataitem ، name) ٪>
<asp: linkbutton id = btnselect text = editor commandName = edit runat = server />
</itemTemplate>
</ASP: Datalist>
<asp: linkbutton id = lbnprevPage text = privent page commandName = prev onCommand = page_onclick runat = server />
<asp: linkbutton id = lbnnextPage text = next commandName = التالي onCommand = page_onclick runat = server />
</form>
</body>
</html>
نتائج التشغيل كما هو موضح أعلاه :)
عندما تكتب البرنامج ، فإن الشيء الأكثر أهمية هو التفكير في الأمر بنفسك. السؤال بسيط للغاية ، لا أحد على استعداد للإجابة بعد.
التفكير كثيرًا والتحقق من المعلومات يكتسب حقًا.