Управление DataGrid слишком известно, поэтому я использовал много вещей раньше. Это в основном о управлении даталистом.
Datalist Control на самом деле очень мощный. Пересечение Пересечение
Это действительно головная боль.
Тем не менее, DataList не предоставляет встроенную функцию подкисления, но это не означает, что мы не можем использовать управление DataList для реализации пейджинга.
Ниже приведен весь исходный код.
(Эта программа проверяется в рамках .NET Framework Beta 2)
< % @ page language = c# %>
< % @ Import namespace = system.data %>
< % @ Import namespace = system.data.oledb %>
<script language = 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 (Object src, Eventargs e)
{{
// Установить PageSize
PageSize = 10;
// Соединять
String myConnString = Provider = microsoft.jet.oledb.4.0;
myConn = new 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 = new oledbcommand (strcount, myconn);
Oledbdatareader dr = mycomm.executereader ();
if (dr.read ()))
{{
intcount = int32.parse (dr [co] .toString ());
}
еще
{{
intCount = 0;
}
dra.close ();
Вернуть IntCount;
}
Icollection createSource ()
{{
int startindex;
// Установить начальный адрес импорта
startIndex = currentPage*pageSize;
string strsel = select * from score;
Набор данных ds = new DataSet ();
Oledbdatadapter myadapter = new oledbdataadapter (strsel, myconn);
myadapter.fill (ds, startIndex, pageSize, счет);
Return ds.tables [score] .defaultView;
}
public void listbind ()
{{
score.datasource = createSource ();
scord.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 (отправитель объекта, CommandVentargs 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>
<голова>
<Title> </title>
</head>
<тело>
<Form runat = server>
Вместе <asp: label id = lblRecordcount foreColor = red runat = server />
Ток IS <ASP: LABEL ID = LBLCurrentPage FORECOLOR = RED RUNAT = SERVER /> /<ASP: ID LABEL = LBLPAGECOUNT FORECOLOR = RED RAUNAT = SERVER />
<ASP: Datalist ID = Score Runat = Server
Удар-стиль-backcolor =#aaaadd
chericingItemstyle-backcolor = gainsboro
Edititemstyle-backcolor = желтый
"
<Temtemplate>
Имя: < %# databinder.eval (container.dataitem, name) %>
<ASP: LinkButton ID = BtnSelect Text = Editor CommandMAme = Edit Runat = Server />
</itemtemplate>
</asp: datalist>
<ASP: LinkButton ID = LBNPRevPage Text = предыдущая страница CommandName = Prevommand = page_onclick Runat = Server />
<ASP: LinkButton ID = lbnNextPage Text = Next CommandMAme = Next OnCommand = page_onclick Runat = Server />
</form>
</body>
</html>
Результаты бега, как показано выше :)
Когда вы пишете программу, самое главное, чтобы подумать об этом самостоятельно. Вопрос слишком прост, еще никто не хочет ответить.
Много думать, и проверка информации действительно набирает обороты.